我知道有人问过这个问题,但我需要一些解决此错误的方法:
Traceback (most recent call last):
File "goeventz_automation.py", line 405, in <module>
if login(driver) is not None:
File "goeventz_automation.py", line 149, in login
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@track-element='header-login']"))).click()
File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/support/wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
这是出现错误的代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import TimeoutException
import urllib.request as request
import urllib.error as error
from PIL import Image
from selenium.webdriver.chrome.options import Options
import datetime as dt
import time
from common_file import *
from login_credentials import *
def login(driver):
global _email, _password
if waiter(driver, "//a[@track-element='header-login']") is not None:
#login = driver.find_element_by_xpath("//a[@track-element='header-login']")
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@track-element='header-login']"))).click()
#login.click()
if waiter(driver,"//input[@id='user_email']") is not None:
email = driver.find_element_by_xpath("//input[@id='user_email']")
password = driver.find_element_by_xpath("//input[@id='password']")
email.send_keys(_email)
password.send_keys(_password)
driver.find_element_by_xpath("//button[@track-element='click-for-login']").click()
return driver
else:
print("There was an error in selecting the email input field. It may be the page has not loaded properly.")
return None
else:
print("There was an error in selecting the header-login attribute on the page.")
return None
if __name__ == '__main__':
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome('/usr/bin/chromium/chromedriver',chrome_options=chrome_options)
#d.get('https://www.google.nl/')
#driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.goeventz.com/')
if login(driver) is not None:
print(create_event(driver))
我认为 Keys.ENTER
有一些问题,但我不知道如何解决这个问题。我已经尝试了所有可能的解决方案………………….
原文由 Nandan 发布,翻译遵循 CC BY-SA 4.0 许可协议
这个错误信息…
…意味着当您尝试对其调用
click()
时,所需元素不可 交互。几个事实:
我使用了与您构建的相同的 xpath ,您可以使用以下解决方案: