問題描述
使用 python、chromedriver 和 Windows.我已經編寫了幾個月的腳本,它定期使用 .click() 函數,幾天前它停止在網站上的任何地方工作.我一直在嘗試通過 id、xpath 等定位元素……甚至通過 send_keys(Keys.ENTER)
單擊它,但沒有成功.我只是想點擊登錄圖標,但沒有任何反應.似乎找到了元素并單擊它,但沒有任何反應.這是
-之后應該會出現
根據您分享的 url 點擊鏈接,文本為 Regístrate o inicia sesión您可以使用以下任一
Using python, chromedriver and Windows.
I've working on a script for some months which uses .click() function regularly, few days ago it stopped working anywhere on the site. I've been trying to locate the element by id, xpath, etc... or even click it by send_keys(Keys.ENTER)
with no success. I'm just trying to click the login icon but nothing happens. Seems to find the element and even click it, but nothing happens. This is the site and here the code:
browser = webdriver.Chrome(chrome_options=options, executable_path=r'chromedriver.exe')
browser.get(('https://es.wallapop.com/'))
signInButton = WebDriverWait(browser, 5).until(EC.element_to_be_clickable((By.ID, 'js-show-login-modal')))
signInButton.click()
signInButton = WebDriverWait(browser, 5).until(EC.element_to_be_clickable((By.ID, 'btn-go-login-form')))
signInButton.click()
a part from not working this is what I get from the terminal:
Traceback (most recent call last):
File "wallapop_delete.py", line 55, in <module>
signInButton = WebDriverWait(browser, 5).until(EC.element_to_be_clickable((B
y.ID, 'btn-go-login-form')))
File "C:UserszaicoAppDataLocalProgramsPythonPython36libsite-packages
seleniumwebdriversupportwait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
and this is what should happen on the browser:
-first click on the icon
-and after this should appear
As per the url you have shared to click on the link with text as Regístrate o inicia sesión you can take help of either of the following Locator Strategies:
LINK_TEXT
PARTIAL_LINK_TEXT
CSS_SELECTOR
XPATH
Here is the sample code using PARTIAL_LINK_TEXT
:
# -*- coding: UTF-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_argument('disable-infobars')
browser=webdriver.Chrome(chrome_options=options, executable_path=r'C:UtilityBrowserDriverschromedriver.exe')
browser.get("https://es.wallapop.com/")
WebDriverWait(browser, 5).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, 'strate o inicia sesi'))).click()
Browser Snapshot:
這篇關于selenium.common.exceptions.TimeoutException 同時通過 expected_conditions 在元素上調用 .click()的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!