当我试图通过css选择器查找元素时,我会遇到这个错误



我得到这个错误:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="user_email"]

错误

url = 'https://candidature.1337.ma/users/sign_in'
r = requests.head(url)
if r.status_code == 200:
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36"
options = webdriver.ChromeOptions()
options.headless = True
options.add_argument(f'user-agent={user_agent}')
options.add_argument("--window-size=1920,1080")
options.add_argument('--ignore-certificate-errors')
options.add_argument('--allow-running-insecure-content')
options.add_argument("--disable-extensions")
options.add_argument("--proxy-server='direct://'")
options.add_argument("--proxy-bypass-list=*")
options.add_argument("--start-maximized")
options.add_argument('--disable-gpu')
options.add_argument('--disable-dev-shm-usage')
browser= webdriver.Chrome(executable_path="C:\Users\myrdp\Desktop\pool_jdid\webdriver\chromedriver.exe" ,options=options)
browser.maximize_window()
email_box = 'none'
pass_box = 'none'
while email_box == 'none' and pass_box == 'none':
browser.get("https://candidature.1337.ma/users/sign_in")
email_box=browser.find_element_by_xpath('''//*[@id="user_email"]
''')
email_box.send_keys(user)
pass_box=browser.find_element_by_xpath('''//*[@id="user_password"]''')
pass_box.send_keys(password)
login_button=browser.find_element_by_name("commit")
login_button.submit()

尝试添加对该元素的等待:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
...
email_box = WebDriverWait(10).until(EC.element_to_be_clickable((By.ID, 'user_email')))

最新更新