Helium driver.execute_script mais quel devrait être le premier argument ?

J'ai le fragment HTML ci-dessous. Le fragment est une liste déroulante.

<select class="single-option-selector no-select selector single-option-selector-100" data-option="option1" id="product-select-template--15646112383191__main-option-0">
<option value="15.0cm">15.0cm</option>
<option value="23.0cm">23.0cm</option>
<option value="25.0cm">25.0cm</option>

Quand j'essaie ceci dans l'hélium en utilisant python

drop_down = [item.web_element for item in find_all(S(".single-option-selector-100"))][0]
select(drop_down, "23.0cm")

J'obtiens ElementClickInterceptedException.

Je pense donc à exécuter le javascript derrière la liste déroulante.

Donc ce que j'essaie c'est

drop_down = [     
item.web_element
for item in find_all(
S(".single-option-selector.no-select.selector.single-option-selector-100")
)
][0]


res = drop_down.find_elements_by_tag_name("option")[1]

Mais je ne comprends pas quel devrait être le script à exécuter?

driver.execute_script(<<what should be here>>, res)



Solution du problème

Je pense que tu veux juste:

document.querySelector('select[data-option="option1"]').value="23.0cm"

mais si c'est vue/réagir, vous devrez peut-être cliquer dessus

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"