繁体   English   中英

Selenium Python - 如何在动态网站中查找元素(获取 NoSuchElementException 异常)

[英]Selenium Python - How to find elements in a dynamic website (getting NoSuchElementException exception)

我正在尝试自动登录网站https://www.crisilresearch.com/#/在右上角,有登录选项,我设法以自动方式捕获并单击它。 但随后登录表单在同一页面上弹出

如图所示。

现在,我尝试为“电子邮件”和“密码”执行检查元素,但我不断收到NoSuchElementException异常。 例如,电子邮件上的“检查元素”显示一个 HTML 输入标签,其中“emailid”作为 ID。 所以我尝试了以下

inputElement = driver.find_element_by_id('emailid')
inputElement.send_keys(email)

但如前所述,这会导致 NoSuchElementException异常。 密码和其他选项的类似问题。 请帮助我。

你只需要放置一个 webdriverwait 等待元素被加载。 这应该有效:

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

driver = webdriver.Chrome("D:/chromedriver/94/chromedriver.exe")
driver.get("https://www.crisilresearch.com/#/")
# wait 60 seconds 
wait = WebDriverWait(driver,60)


wait.until(EC.element_to_be_clickable((By.XPATH, '//a[text()="Login "]'))).click()
wait.until(EC.element_to_be_clickable((By.XPATH, '//input[@id="emailid"]'))).send_keys("username@user.com")
wait.until(EC.element_to_be_clickable((By.XPATH, '//input[@id="passwords"]'))).send_keys("myPassw0rd")
wait.until(EC.element_to_be_clickable((By.XPATH, '//button[@id="sub"]'))).click()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM