selenium篇之等待

如今,大多数Web应用程序都在使用AJAX技术。当浏览器加载页面时,该页面中的元素可能会以不同的时间间隔加载。这使查找元素变得困难:如果DOM中尚不存在元素,则定位函数将引发ElementNotVisibleException异常。使用等待,我们可以解决此问题。等待使执行的动作之间有些松懈-主要是定位元素或对该元素进行的任何其他操作。

Selenium Webdriver提供两种类型的等待-隐式和显式。显式等待使WebDriver等待特定条件发生,然后再继续执行。隐式等待使WebDriver在尝试查找元素时轮询DOM一定时间。

显示等待

显式等待是您定义的代码,用于在继续执行代码之前先等待特定条件发生。极端的情况是time.sleep(),它将条件设置为要等待的确切时间段。提供了一些方便的方法,可以帮助您编写仅等待所需时间的代码。WebDriverWait与ExpectedCondition结合是实现此目的的一种方法。

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

driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )
finally:
    driver.quit()

除非找到在10秒内返回的元素,否则它最多等待10秒才抛出TimeoutException。默认情况下,WebDriverWait每500毫秒调用ExpectedCondition,直到成功返回。对于ExpectedCondition类型,成功返回是Boolean返回true,对于所有其他ExpectedCondition类型,返回值不为null。

隐等待

隐式等待告诉WebDriver在尝试查找不立即可用的一个或多个元素时,在一定时间内轮询DOM。默认设置为0。设置后,将在WebDriver对象的生存期内设置隐式等待。

from selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id("myDynamicElement")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,下面是一关于Selenium学习的简要笔记: Selenium学习笔记 Selenium是一个用于自动化浏览器操作的工具,它提供了一套API,可以简化Web应用程序的测试和自动化过程。以下是一些基本概念和用法,可以帮助你快速入门Selenium。 1. 安装Selenium 首先,你需要安装Selenium库。你可以使用pip命令来安装,在命令行中执行以下命令: ``` pip install selenium ``` 2. 驱动程序 Selenium需要一个浏览器驱动程序来控制浏览器。根据你使用的浏览器,你需要下载相应的驱动程序。 - 如果你使用Chrome浏览器,你需要下载ChromeDriver; - 如果你使用Firefox浏览器,你需要下载geckodriver; - 如果你使用Edge浏览器,你需要下载MicrosoftWebDriver。 3. 启动浏览器 在使用Selenium之前,请确保已经将驱动程序路径添加到系统环境变量中。然后,你可以使用以下代码启动一个浏览器: ```python from selenium import webdriver # 使用Chrome浏览器 driver = webdriver.Chrome() # 使用Firefox浏览器 driver = webdriver.Firefox() # 使用Edge浏览器 driver = webdriver.Edge() ``` 4. 打开网页 一旦你启动了浏览器,你可以使用以下代码打开一个网页: ```python driver.get("https://www.example.com") ``` 5. 查找元素 Selenium提供了多种方式来查找网页上的元素,比如按ID、类名、标签名等。以下是一些示例代码: ```python # 按ID查找元素 element = driver.find_element_by_id("element_id") # 按类名查找元素 elements = driver.find_elements_by_class_name("element_class") # 按标签名查找元素 element = driver.find_element_by_tag_name("element_tag") ``` 6. 元素操作 一旦找到了元素,你可以对它进行各种操作,比如点击、输入文本等。以下是一些示例代码: ```python # 点击元素 element.click() # 输入文本 element.send_keys("text") # 获取元素文本 text = element.text ``` 这只是Selenium的基本用法,还有很多其他功能和用法等待你去探索。希望这学习笔记对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值