3 Réponses :


0
votes

Je pense que vous pouvez essayer d'utiliser ollement_to_be_clickable xxx

voir https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.support.expeced_conditions


1 commentaires

Même exception à nouveau :(



0
votes

J'ai fait face au même problème à Java, qui a été résolu en utilisant l'attente fluide.

Pour Pyton, reportez-vous à ce lien: Fluentwait de Java à Python

Vous devrez ajouter du timeoutException dans Ignored_Exceptions Liste.


1 commentaires

J'ai ajouté l'exception à la liste, mais cela parvient toujours à soulever cette exception.



1
votes

Vous essayez d'attendre un élément invisible et non cliquant jusqu'à ce que la liste déroulante tout code> est cliquée. Je veux dire, le localisateur que vous essayez de cliquer deviendra visible ou cliquable après avoir cliqué sur la liste déroulante tout code> et que vous utilisez le mauvais localisateur ici.

Essayez d'utiliser // div [@ @ ID = 'NAV-Search-Dropdown-Carte'] / Div code> comme xpath, de sorte que vous puissiez identifier le bouton tout code> Drop Down et peut cliquer dessus. P >

Si vous souhaitez sélectionner des options dans la liste déroulante, vous devez utiliser searchdropdowbox code> comme ID après avoir cliqué sur le tout code> déposer. p>

Essayez le code ci-dessous: p> xxx pré>

Si vous souhaitez sélectionner une option dans la liste déroulante après avoir cliqué sur tout code>, vous pouvez utiliser le python Sélectionnez CODE> Comme ci-dessous: P>

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select

driver = webdriver.Chrome('chromedriver path')
driver.get('https://www.amazon.com/')
search_dropdown_box = WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='nav-search-dropdown-card']/div")))
search_dropdown_box.click()

options = driver.find_element_by_id('searchDropdownBox')
select = Select(options)
select.select_by_visible_text('Baby')


1 commentaires

Je n'aurais pas pu mieux l'avoir expliqué :), donc la recherchedropdownbox est essentiellement un identifiant pour la liste déroulante, qui n'est pas visible par défaut lorsque la page est chargée?