📜  selenium 断言页面上的文本 python (1)

📅  最后修改于: 2023-12-03 15:20:04.320000             🧑  作者: Mango

使用Selenium实现页面文本断言

Selenium是一款自动化测试工具,可以模拟用户对网站进行操作。除了自动化测试,Selenium也可以用来爬取数据或者监控网站的更新情况。在使用Selenium进行自动化测试时,经常需要对页面上的文本进行断言,以判断测试用例的执行结果。

本文将介绍如何使用Selenium实现页面文本断言,以‘python’为例。

安装Selenium

在使用Selenium之前,需要先安装Selenium库。可以使用pip直接安装,如下所示:

pip install selenium
创建Selenium Webdriver

Selenium Webdriver是Selenium的核心,它可以模拟用户与浏览器的交互。Selenium支持多种浏览器,如Chrome、Firefox、Safari等。以Chrome为例,创建Selenium Webdriver的代码如下所示:

from selenium import webdriver

driver = webdriver.Chrome()
打开网页

创建Selenium Webdriver后,需要使用它来打开对应的网页。代码如下所示:

driver.get("https://www.baidu.com")

以上代码将使用Webdriver打开百度的首页。

断言文本

在页面上进行文本断言的方法主要有两种,分别是通过页面源代码和通过页面元素。这里我们介绍通过页面元素的方法。

以判断百度首页是否包含关键字“python”为例,代码如下所示:

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

search_box = driver.find_element_by_id("kw")
search_box.send_keys("python")
search_box.submit()

try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[contains(text(), 'python')]"))
    )
    assert "python" in element.text
    print("文本断言成功")
except:
    print("文本断言失败")

driver.close()

代码的详细解释如下所示:

  1. 使用find_element_by_id方法获取搜索框元素,并向搜索框输入“python”关键字。
  2. 使用submit方法提交搜索请求。
  3. 使用WebDriverWait方法,设置最长等待时间为10秒。等到页面上的文本中包含关键字“python”时,才会继续执行下面的代码。
  4. 使用assert语句判断页面上的文本中是否包含关键字“python”,如果包含则继续执行,否则抛出异常。
  5. 如果文本断言成功,则输出“文本断言成功”;否则输出“文本断言失败”。
  6. 调用close方法关闭Webdriver。
结论

Selenium可以方便地实现页面文本断言。在使用Selenium进行自动化测试时,断言是非常重要的一环,它可以帮助我们确保测试用例的正确性。