前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【说站】python Selenium如何等待元素出现

【说站】python Selenium如何等待元素出现

作者头像
很酷的站长
发布2022-11-24 09:50:21
1.1K0
发布2022-11-24 09:50:21
举报
文章被收录于专栏:站长的编程笔记

python Selenium如何等待元素出现

有一个 Selenium 脚本(Python),它点击回复按钮使anonemail类出现。anonemail 类出现的时间各不相同。因此,我必须使用 sleep 直到元素出现。

我想等到课程出现而不是使用睡眠。我听说过等待命令,但我不知道如何使用它们。

这是我迄今为止所拥有的:

代码语言:javascript
复制
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 上的期望。这并不一定意味着该元素是可见的。所以有效的代码行将是:

代码语言:javascript
复制
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()检查元素是否可见并启用以便您可以单击它的期望。所以在你的用例中,代码行将是:

代码语言:javascript
复制
WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".reply-button"))).click()

以上就是python Selenium等待元素出现的方法,希望对大家有所帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • python Selenium如何等待元素出现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档