Moin Forum,
ich habe mir ein Skript zusammen gebaut, indem ich mit Selenium automatisch nach unterschiedlichen Flugverbindung suchen möchte. Ich nutze Firefox mit geckodriver. Wenn ich zu der Seite mit der Destination ankomme, dann kann ich zwar das Eingabefeld finden, aber es wird kein Wert eingegeben.
Anbei mein Skriptschnipsel:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
browser.get('https://www.google.de/flights?q=fl%C3%B ... AXoECAIQAw')
browser.maximize_window()
accept_button = browser.find_element(By.XPATH,".//button[@class='VfPpkd-LgbsSe VfPpkd-LgbsSe-OWXEXe-k8QpJ VfPpkd-LgbsSe-OWXEXe-dgl2Hf nCP5yc AjY5Oe DuMIQc']")
accept_button.click()
inputs = browser.find_elements(By.XPATH, ".//input[@class='II2One j0Ppje zmMKJ LbIaRd']")
dest = inputs[0]
dest.click()
dest.send_keys('Frankfurt'+ Keys.RETURN)
bei dest.send_keys wird leider kein Frankfurt eingegeben. Woran liegt das? Habe ich nach dem falschen Element mit der falschen class gesucht?
2. Frage: Gibt es eine schönere/einfachere Methode um das Eingabefeld für die Destination zu suchen?
Selenium - Eingabgefeld suchen/benutzen
@Baustein, ich kann leider nur Frage 2 beantworten:
Über das "accessible_name" Attribut "Wohin?" kann man das Inputfeld eindeutig bestimmen.
Warum man keine Zeichen senden kann, weiß ich leider auch nicht. - Vielleicht jemand anderes hier...
Wenn man die Zeichen manuell eingibt, wird im Hintergrund über Ajax-Requests direkt nach Vorschlägen gesucht. Vielleicht ist das das Problem?
Code: Alles auswählen
try:
input_element = next(
element for element in browser.find_elements(By.XPATH, ".//input[@class='II2One j0Ppje zmMKJ LbIaRd']")
if element.accessible_name == "Wohin?"
)
except StopIteration:
print("Input not found")
Warum man keine Zeichen senden kann, weiß ich leider auch nicht. - Vielleicht jemand anderes hier...
Wenn man die Zeichen manuell eingibt, wird im Hintergrund über Ajax-Requests direkt nach Vorschlägen gesucht. Vielleicht ist das das Problem?