python Selenium等待元素出现的具体方法

 更新时间:2021年08月15日 12:07:00   作者:小妮浅浅  
在本篇文章里小编给大家分享的是一篇关于python Selenium等待元素出现的具体方法,以后需要的朋友们可以学习参考下。

有一个 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()

实例扩展:

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



# 一直等待某元素可见,默认超时10秒
def is_visible(locator, timeout=10):
    try:
        ui.WebDriverWait(driver, timeout).until(EC.visibility_of_element_located((By.XPATH, locator)))
        return True
    except TimeoutException:
        return False

# 一直等待某个元素消失,默认超时10秒
def is_not_visible(locator, timeout=10):
    try:
        ui.WebDriverWait(driver, timeout).until_not(EC.visibility_of_element_located((By.XPATH, locator)))
        return True
    except TimeoutException:
        return False

到此这篇关于python Selenium等待元素出现的具体方法的文章就介绍到这了,更多相关python Selenium如何等待元素出现内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python爬取一组小姐姐图片实例

    python爬取一组小姐姐图片实例

    大家好,本篇文章主要讲的是python爬取一组小姐姐图片实例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Python中使用dwebsocket实现后端数据实时刷新

    Python中使用dwebsocket实现后端数据实时刷新

    dwebsocket是Python中一款用于实现WebSocket协议的库,可用于后端数据实时刷新。在Django中结合使用dwebsocket和Channels,可以实现前后端的实时通信,支持双向数据传输和消息推送,适用于实时聊天、数据监控、在线游戏等场景
    2023-04-04
  • python pip安装的包放在哪个目录(site-packages目录的位置)

    python pip安装的包放在哪个目录(site-packages目录的位置)

    这篇文章主要介绍了python pip安装的包放在哪个目录(site-packages目录的位置),通常安装在python安装目录下的lib/site-packages目录下,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Python并行计算库Joblib高效使用指北

    Python并行计算库Joblib高效使用指北

    Joblib是用于高效并行计算的Python开源库,其提供了简单易用的内存映射和并行计算的工具,以将任务分发到多个工作进程中,这篇文章主要介绍了Python并行计算库Joblib使用指北,需要的朋友可以参考下
    2024-08-08
  • Pytorch 神经网络—自定义数据集上实现教程

    Pytorch 神经网络—自定义数据集上实现教程

    今天小编就为大家分享一篇Pytorch 神经网络—自定义数据集上实现教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python+selenium 获取一组元素属性值的实例

    Python+selenium 获取一组元素属性值的实例

    今天小编就为大家分享一篇Python+selenium 获取一组元素属性值的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python中使用Inotify监控文件实例

    Python中使用Inotify监控文件实例

    这篇文章主要介绍了Python中使用Inotify监控文件实例,本文直接给出实现代码,需要的朋友可以参考下
    2015-02-02
  • 详解Python 最短匹配模式

    详解Python 最短匹配模式

    这篇文章主要介绍了如何实现Python 最短匹配模式,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • react中useLayoutEffect 和useEffect区别

    react中useLayoutEffect 和useEffect区别

    本文主要介绍了react中useLayoutEffect 和useEffect区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Pyinstaller打包Pytorch框架所遇到的问题

    Pyinstaller打包Pytorch框架所遇到的问题

    Pytorch在python界用得比较多,打包容易失败,本文主要介绍了Pyinstaller打包Pytorch框架所遇到的问题,文中介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03

最新评论