0
votes

Menu déroulant Dynamic Dynamic Selenium Python

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')


6 commentaires

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


3 Réponses :


1
votes

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")


2 commentaires

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.



1
votes

Pouvez-vous essayer d'utiliser xpath comme ça? xxx pré>

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')


1 commentaires

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?



0
votes

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.


0 commentaires