Ich möchte den Wert der Option von einem Ajax erhalten. Der HTML-Code ist:Selen erhalten den Wert eines Ajax mit statischer ID
<select id="j_id0:searchlayout:mainform:countryVal" name="j_id0:searchlayout:mainform:countryVal" size="1" onchange="A4J.AJAX.Submit('j_id0:searchlayout:mainform',event,{'similarityGroupingId':'j_id0:searchlayout:mainform:j_id17','parameters':{'j_id0:searchlayout:mainform:j_id17':'j_id0:searchlayout:mainform:j_id17'} ,'status':'j_id0:searchlayout:mainform:statusProcess'})" style="height:2.4em;width:65%;">
<option value="" selected="selected">Select Country</option>
wie Sie sehen können, da id in dem HMTL-Code zur Verfügung steht, ist die webdriverWait (unten) mit nicht helfen.
dropdownCountry = WebDriverWait(driver, 10).until(EC.presence_of_element_located(
((By.ID, "j_id0:searchlayout:mainform:countryVal")))
Ich versuchte
dropdownCountry = wait.until(EC.element_to_be_clickable((By.XPATH, "//select[@id='j_id0:searchlayout:mainform:countryVal']/option")))
aber es erzeugt keine Liste.
Eine Option ist die Verwendung time.sleep(), um dem Fahrer genügend Zeit zu geben, die Liste der Länder zu laden. Aber ich weiß, dass es keine gute Übung ist.
Jeder Vorschlag wird geschätzt. Dank
Ich denke, es ist keine schlechte Praxis –
oder verwenden Sie -> http://selenium-python.readthedocs.io/waits.html#implicit-wa sein –