2017-07-28 7 views
3

Ich arbeite mit Selen, um automatisch einige <input> s auf meiner Website auszufüllen. Ich habe mehrere Eingänge, die identisch sind, jeweils mit einem Eingabefeld und einer Sendetaste. Ich möchte in jedem Eingabefeld eine Zeichenfolge eingeben und senden (die Site wird nicht neu geladen).Nächste/nächste Taste finden Selenium

input = driver.find_elements_by_class_name('cdRecord') 
for in in inputs: 
    in.click() 
    nr = str(randint(0, 1000)) 
    in.send_keys("..."+nr) 
    NEXT_BUTTON_XPATH = '//button[@type="submit" and @title="next"]' #this does not work 
    driver.find_element_by_xpath(NEXT_BUTTON_XPATH).click() 

Ich hole das alle input zuerst und dann über sie iterieren. Das Problem ist, dass er jede Eingabe ausfüllt, aber immer auf die gleiche Schaltfläche klickt.

Also meine Frage ist, wie finde ich die nächste Schaltfläche?

fand ich this aber wenn ich die xpath und following-sibling verwenden möchten ich möchte auch einige id und ändern Sie den Pfad in jeder Iteration holen müssen:

x = fetch id from the input field? 
driver.find_element_by_xpath("//input[@id, "x"]/following-sibling::button") 

Gibt es eine einfache Lösung zu finden, die nächstgelegenes Element zum ausgewählten Element?

+0

Wenn diese 'INPUT's in einer Form sind, alles, was Sie tun müssen, ist, zu tun' in .submit() 'für jedes Element im Formular. – JeffC

+0

@JeffC nein der Ajax wird nur ausgelöst, wenn ich klicke, würde die Seite laden würde ... – hansTheFranz

Antwort

1

Sie können in.get_attribute('id') verwenden, um die id abzurufen. Alternativ


, können Sie auch die following-sibling::button eines Elements wählen Sie eine XPath:

in.find_element_by_xpath(".//following-sibling::button").click() 

Erläuterung:

  • . - Wählt den aktuellen Knoten (<input>)
  • // - Wählt Knoten im Dokument
    • following-sibling::button - wo Geschwister, nachdem der aktuelle Knoten ein <button>

Referenz: https://www.w3schools.com/xml/xpath_intro.asp

+1

Vielen Dank. Der zweite Teil ist genau das, wonach ich suche. – hansTheFranz

Verwandte Themen