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

Le shell POSIX (sh) redirige stderr vers stdout et capture stderr et stdout dans des variables