有一个 Selenium 脚本(Python),它点击回复按钮使anonemail类出现。anonemail 类的出现时间各不相同。所以,我必须使用它 sleep 直到元素出现。
我想等到课程出现而不是睡觉。我听说过等待命令,但我不知道如何使用它们。
这是我迄今为止所拥有的:
browser.find_element_by_css_selector(".reply-button").click() sleep(5) email=browser.find_element_by_css_selector(".anonemail").get_attribute("value")
解决:
1、若验证任何元素的存在,检查元素期望。
诱导WebdriverWait设置expected_conditions作为presence_of_element_located()检查页面上是否存在元素 DOM 期望。这并不一定意味着这个元素是可见的。因此,有效的代码线将是:
WebDriverWait(browser,20).until(EC.presence_of_element_located((By.CSS_SELECTOR,".reply-button"))).click()
2、如果提取任何元素的任何属性,检查元素的可见期望。
需要诱导WebDriverWait设置。expected_conditions作为visibility__of_element_located(locator)检查页面上是否存在检查元素 DOM 以及可见的期望。可见性意味着元素不仅显示,而且高度和宽度大于 0.因此,在您的用例中,代码行将是:
email = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "element_css"))).get_attribute("value")
3、若用例要求click()调用任何元素,检查元素是否可见并启用。
诱导WebdriverWait设置expected_conditions作为element__to_be_clickable()检查元素是否可见并启用,以便您能够单击它的期望。因此,在您的用例中,代码线将是:
WebDriverWait(browser,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,".reply-button"))).click()
以上是python Selenium等待元素出现的方法,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。