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 ?

La fonction GCP Cloud pour écrire des données dans BigQuery s'exécute avec succès, mais les données n'apparaissent pas dans la table BigQuery

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