Selenium+Python自动化测试入门

Selenium+Python自动化测试入门

简介

Selenium是一个流行的自动化测试工具,它可以在浏览器上模拟多种操作,比如用户输入、点击、滚动等等,还可以获取浏览器中的元素进行断言、检查等等。Selenium的支持范围广泛,包括Chrome、Firefox、Safari等浏览器,而且它的Python库也非常容易使用,对于初学者来说是一个非常友好的选择。

本文将介绍Selenium+Python自动化测试的基础知识、操作流程和示例。

安装Selenium

Selenium的Python库可以通过pip安装,命令如下:

pip install selenium

此外,还需要根据使用的浏览器安装相应的WebDriver:

下载后需要将WebDriver所在的目录添加到环境变量中,以便Python可以找到。

编写测试用例

接下来我们将介绍如何编写一个简单的Selenium+Python自动化测试用例,首先需要导入Selenium库和WebDriver:

from selenium import webdriver

driver = webdriver.Chrome()  # Chrome浏览器
# driver = webdriver.Firefox()  # Firefox浏览器

这里我们选择使用Chrome浏览器,如果想使用其他浏览器可以更改对应的代码。

接下来,我们可以调用WebDriver的一些方法来模拟用户操作,比如打开网页、输入文本、点击按钮等等。

driver.get('http://example.com')  # 打开网页
driver.find_element_by_name('username').send_keys('username')  # 输入用户名
driver.find_element_by_name('password').send_keys('password')  # 输入密码
driver.find_element_by_css_selector('input[type="submit"]').click()  # 点击提交按钮

在上面的示例中,我们使用了find_element_by_XXX方法来获取网页中的元素,并使用send_keys方法来输入文本,最后使用click方法来模拟点击按钮。

除此之外,我们还可以使用一些断言方法来验证测试结果:

assert 'Welcome' in driver.title  # 验证标题中是否包含Welcome

完整的代码如下:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('http://example.com')
driver.find_element_by_name('username').send_keys('username')
driver.find_element_by_name('password').send_keys('password')
driver.find_element_by_css_selector('input[type="submit"]').click()

assert 'Welcome' in driver.title

示例:百度搜索

接下来我们将介绍一个示例,演示如何使用Selenium+Python自动化测试进行百度搜索。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.find_element_by_id('kw').send_keys('Selenium')  # 输入搜索关键字
driver.find_element_by_id('su').click()  # 点击“百度一下”按钮

assert 'Selenium' in driver.title  # 验证标题中是否包含Selenium

driver.quit()  # 关闭浏览器窗口

在代码中,我们首先创建了一个Chrome浏览器的WebDriver对象,然后打开了百度的首页,接着使用find_element_by_id方法获取了搜索框和“百度一下”按钮的元素,并使用send_keys方法输入搜索关键字,最后使用click方法模拟了点击“百度一下”按钮的操作。

在搜索结果页面中,我们使用assert方法验证了标题是否包含搜索关键字“Selenium”,如果验证通过则不会有任何输出,否则程序会抛出错误提示。

示例:爬取网页数据

Selenium还可以用来爬取网页数据,比如获得某个网站中的所有链接,然后进行分析和处理。下面是一个示例:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.example.com')

# 获取所有链接
links = driver.find_elements_by_xpath('//a[@href]')
for link in links:
    href = link.get_attribute('href')
    print(href)

driver.quit()  # 关闭浏览器窗口

在代码中,我们首先打开了一个网站的首页,然后使用find_elements_by_xpath方法获取所有带有href属性的链接,并遍历了所有链接,输出了它们的href属性值。

总结

本文介绍了Selenium+Python自动化测试的基础知识、操作流程和示例,它们足以满足大部分基础测试需求。当然,Selenium还有更多的高级特性和用法,需要根据具体场景进行深入学习和探索。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Selenium+Python自动化测试入门 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Python实现判断字符串中包含某个字符的判断函数示例

    Python中判断字符串中包含某个字符的判断函数可以使用in关键字实现。其语法如下: if char in string: # 包含某个字符 else: # 不包含某个字符 其中,char代表要查找的字符,string代表要进行查找的字符串。如果string中包含了char,则执行if语句后面的代码块;如果string中不包含char,则执行else语句后面…

    python 2023年6月5日
    00
  • Python列表(list)常用操作方法小结

    以下是“Python列表(list)常用操作方法小结”的完整攻略。 Python列表(list)常用操作方法小结 在Python中,列表(list)是一种常见的数据类型,它可以存储多个值。列表是可变的,可以添加、删除和修改其中的元素。本文将详细介绍Python(list)的常用操作方法。 创建列表 Python中,可以使用方括号[]来创建一个新的列表。例如:…

    python 2023年5月13日
    00
  • 如何基于Python爬取隐秘的角落评论

    关于“如何基于Python爬取隐秘的角落评论”,以下是完整的攻略过程: 一、确定爬取目标 在开始之前,我们需要明确自己的爬取目标,例如,要从哪个网站或者哪个页面爬取评论、需要爬取的数据类型是什么等等。 二、安装相关Python库 Python可以通过第三方库进行网页爬取,这里我们需要安装几个库,包括requests、bs4、re、csv等库。 # 安装 re…

    python 2023年5月14日
    00
  • Python实现i人事自动打卡的示例代码

    接下来我将详细讲解“Python实现i人事自动打卡的示例代码”的完整攻略。 1. 确定打卡接口 首先,要使用Python实现自动打卡功能,需要确定i人事打卡功能的接口。打开i人事系统的网页版,在F12开发者工具中找到“Network”选项卡,并勾选“Preserve log”选项,然后手动打卡一次,即可看到打卡接口的请求。一般情况下,i人事系统的打卡接口为:…

    python 2023年6月6日
    00
  • python中的函数用法入门教程

    Python中的函数用法入门教程 函数是Python中的重要概念之一,是指一段代码可以重复使用的方便模块。在Python中,函数可以接收参数,执行一系列操作并最终返回结果。本文将重点介绍Python中的函数用法,为初学者提供参考。 函数的定义 在Python中,可以使用def关键字定义函数。函数定义格式一般如下: def 函数名(参数1, 参数2, …)…

    python 2023年5月30日
    00
  • python实现交并比IOU教程

    下面是Python实现交并比(IOU)教程的完整攻略。 什么是交并比(IOU)? 交并比(Intersection Over Union,简称IOU)是目标检测中用来衡量预测框和真实框之间重叠程度的度量方式。在计算机视觉领域中应用广泛,例如人脸检测、目标跟踪等场景。 IOU是预测框和真实框的交集面积与并集面积之比,公式如下: $IOU = \frac{Are…

    python 2023年5月19日
    00
  • python 字符串只保留汉字的方法

    如果您想Python字符串只保留汉字,可按照以下步骤进行操作: 导入re模块 在Python中,re是用于正则表达式操作的标准库之一,它在字符串中搜索和替换文字非常方便。 import re 使用正则表达式过滤字符串中的非汉字字符 正则表达式中的 [\u4e00-\u9fa5] 表示匹配汉字范围内的字符,其他非汉字字符使用正则表达式 [^\u4e00-\u9…

    python 2023年6月5日
    00
  • 一文带你了解Python 四种常见基础爬虫方法介绍

    在Python中,我们可以使用多种方法来实现基础的网络爬虫。本文将介绍四种常见的基础爬虫方法。 1. 使用urllib库发送HTTP请求 urllib库是Python标准库中的一个HTTP客户端库,可以用于发送HTTP请求和处理HTTP响应。以下是一个使用urllib库发送HTTP请求的示例: import urllib.request url = &quo…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部