Je souhaite remplir le formulaire d'un site Web automatiquement, tout se passe bien jusqu'à ce que je dois choisir une option à partir du menu déroulant dynamique.
wait.until(ec.visibility_of_element_located((By.XPATH, "//select[option[@value='text_field_validation_type']]"))).click()
sleep(2)
select_element = browser.find_element_by_xpath("//select[option[@value='dropdown_field_type']]")
select = Select(select_element)
#select.select_by_index(1)
select.select_by_visible_text('Dropdown list')
3 Réponses :
Essayez le code ci-dessous avec Selenium Sélectionnez CODE>, XPath basé sur l'étiquette et attendre que l'élément soit cliquable: sub_menu = wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@id='dropdown_field_type' and .//label[.='Data source for dropdown list']]//select")))
select = Select(sub_menu)
select.select_by_index(0)
# or
select.select_by_visible_text("Populate with list items specified here")
Pouvez-vous partager l'URL?
Cela fonctionne bien après que j'ai mis à jour mon navigateur et utilise le dernier geckodriver. Désolé pour ça. Ma faute.
Pouvez-vous essayer d'utiliser xpath comme ça? Sélectionnez Première liste déroulante par texte ou valeur. p> select = Select(driver.find_element_by_xpath(dd2))
# select by visible text
select.select_by_visible_text('Populate with list items specified here')
BTW, votre code fonctionne également pour le menu après que je clique d'abord, mais ne fonctionne pas pour le sous-menu, avez-vous une idée de pourquoi?
Après avoir essayé beaucoup de choses, la solution consiste à mettre à niveau le navigateur Web et à utiliser le dernier geckoRiver, puis à l'aide de la fonction Select. Ma faute. Merci beaucoup pour l'aide. P>
Partagez HTML avec menu et sous-menu, ainsi que votre code pour eux
Je l'ai édité.
Le sous-menu Dropdown est-il actualisé après avoir choisi une option dans la première liste déroulante? Si tel est le cas, vous voudrez peut-être attendre un peu de temps ..
Quelle erreur avez-vous obtenu?
@ Deners je n'ai aucune erreur, la valeur ne change pas
@Naveen il ne vous rafraîchit pas. Je peux cliquer dessus, je ne peux tout simplement pas choisir la bonne option