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

Comment signer la connexion OKEx API version 5 avec websockets ?

Comment convertir une interface{} qui est vraiment une tranche de types dont le genre est reflect.Int32 en tranche de int32 ?

Créer un fichier CSV à partir d'un fichier texte avec des jetons d'en-tête à l'aide de scripts shell