sha*_*azi 3 python selenium findelement
使用 Selenium,我无法在 Udemy 网站上找到“电子邮件”元素。
这是我尝试过的:
browser.get('https://www.udemy.com/join/login-popup/')
browser.implicitly_wait(5)
email = browser.find_element(By.ID, 'email--1')
print(email)
Run Code Online (Sandbox Code Playgroud)
但NoSuchElementException
据我所知,它给出了“email”元素甚至不在 iframe 中的情况。
那么,我怎样才能找到这个特定的元素呢?
在这种情况下,您可能在页面加载之前查找该元素。
您应该使用 的WebDriverWait
类和的Selenium
条件,如下例所示:presence_of_element_located
expected_conditions
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
browser.get('https://www.udemy.com/join/login-popup/')
timeout = 20 # Number of seconds before timing out.
email = WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.ID, 'email--1')))
email.send_keys("example@email.com")
Run Code Online (Sandbox Code Playgroud)
在上面的代码片段中,Selenium WebDriver
在抛出 a 之前最多等待 20 秒TimeoutException
,除非它在上述时间内找到要返回的元素。WebDriverWait
默认情况下,ExpectedCondition
每 500 毫秒调用一次,直到成功返回。
最后,presence_of_element_located
期望确定某个元素是否存在于页面上DOM
,但不一定暗示该元素是可见的。当找到该元素时,定位器返回WebElement
.
归档时间: |
|
查看次数: |
126 次 |
最近记录: |