使用Selenium WebDriver,Python和Chrome编写您的第一个Web测试

本文介绍了如何使用Selenium WebDriver和Python编写一个简单的Web测试,该测试模拟用户在DuckDuckGo搜索引擎上进行搜索。测试流程包括导航到主页、输入搜索词、验证搜索结果和搜索词的显示。文章详细解释了测试代码的每一部分,包括元素定位、交互和断言。最后,提供了运行测试的注意事项。
摘要由CSDN通过智能技术生成

准备好WebDriver后,让我们编写第一个Web测试!测试将是一个简单的DuckDuckGo搜索。DuckDuckGo是一个不跟踪用户数据的搜索引擎。就像任何其他搜索引擎一样,用户可以输入搜索短语并获得指向匹配网站的链接。

在编写自动化代码之前,最好总是以简单的语言编写测试过程。编写程序迫使我们首先考虑被测行为。这是我们的测试过程:

  1. 导航到DuckDuckGo主页

  2. 输入搜索词组

  3. 验证:

    1. 结果显示在结果页面上

    2. 搜索词出现在搜索栏中

    3. 至少一个搜索结果包含搜索短语

这是相当基本的,但涵盖了端到端的典型搜索行为。

代码

将以下测试功能添加到:tests/test_web.py

def test_basic_duckduckgo_search(browser):
  URL = 'https://www.duckduckgo.com'
  PHRASE = 'panda'
  
  browser.get(URL)
  
  search_input = browser.find_element_by_id('search_form_input_homepage')
  search_input.send_keys(PHRASE + Keys.RETURN)
  
  link_divs = browser.find_elements_by_css_selector('#links > div')
  assert len(link_divs) > 0
  
  xpath = f"//div[@id='links']//*[contains(text(), '{PHRASE}')]"
  results = browser.find_elements_by_xpath(xpath)
  assert len(results) > 0
  
  search_input = browser.find_element_by_id('search_form_input')
  assert search_input.get_attribute('value') == PHRASE

test_basic_duckduckgo_search函数按照Arrange-Act-Assert模式执行我们的测试过程。请注意,测试函数声明了一个名为的参数browser,该参数  与我们用于ChromeDriver设置和清除的固定装置相同。每次运行此测试时,pytest都会自动调用固定装置并注入WebDriver参考。然后,测试函数使用该browser变量进行多个WebDriver调用。让我们看看这些调用是如何工作的。

URL = 'https://www.duckduckgo.com'

该测试将DuckDuckGo主页的URL声明为变量,以提高可读性和可维护性。

PHRASE = 'panda'

这是测试将使用的搜索短语。由于测试涵盖了“基本”搜索,因此该短语并不太重要。其他行使不同行为的测试应使用更复杂的短语。再次,测试将其声明在测试功能的顶部,以提高可读性和可维护性。

browser.get(URL)

测试的起点是DuckDuckGo主页。此调用将浏览器导航到给定的URL。被警告,虽然:此调用并  不会等待页面加载。它只是启动加载交互。

search_input = browser.find_element_by_id('search_form_input_homepage')

自动化Web

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件测试test

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值