J'essaie d'attendre que la boîte de déroulement de la recherche apparaisse avant de cliquer dessus sur https://amazon.com Utilisation de l'extrait de code suivant. Malgré cela, l'extrait de code ne semble jamais fonctionner, il finit toujours par échouer avec l'exception suivante. P> File "C:/Users/DHIWAKAR-PC/PycharmProjects/AlationProject/assignment.py", line 18, in <module>
search_dropdown_box = WebDriverWait(chrome_browser,10).until(EC.visibility_of_element_located((By.ID,"searchDropdownBox")))
File "C:\Python34\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
3 Réponses :
Je pense que vous pouvez essayer d'utiliser ollement_to_be_clickable em> strud> voir https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.support.expeced_conditions p> p>
Même exception à nouveau :(
J'ai fait face au même problème à Java, qui a été résolu en utilisant l'attente fluide. P>
Pour Pyton, reportez-vous à ce lien: Fluentwait de Java à Python P>
Vous devrez ajouter du timeoutException dans Ignored_Exceptions Liste. P>
J'ai ajouté l'exception à la liste, mais cela parvient toujours à soulever cette exception.
Vous essayez d'attendre un élément invisible et non cliquant jusqu'à ce que la liste déroulante Essayez d'utiliser Si vous souhaitez sélectionner des options dans la liste déroulante, vous devez utiliser Essayez le code ci-dessous: p> Si vous souhaitez sélectionner une option dans la liste déroulante après avoir cliqué sur 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. // 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 > searchdropdowbox code> comme ID après avoir cliqué sur le tout code> déposer. p> 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')
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?