栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于python语言的selenium自动化测试(selenium方法汇总)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于python语言的selenium自动化测试(selenium方法汇总)

一、Selenium
    Selenium是一个用于web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作支持通过各种driver(FirefoxDriver,InternetExplorerDriver,ChromeDriver)驱动真实浏览器完成测试Selenium支持无界面浏览器操作

我们之前都是通过模拟浏览器,向服务器发送请求获取响应数据的,有些网站会校验你的浏览器,隐藏一些信息,这时候就需要用Selenium来处理(驱动一个真实的浏览器)。


二、Selenium安装

以Chrome浏览器为例,查看浏览器版本,在谷歌浏览器驱动下载地址中下载相应版本和操作系统的驱动

下载成功后,解压称.exe文件放在项目工程目录下即可。不需要安装和运行。

之后在PyCharm pip install selenium库


三、Selenium的基本使用

可以分为三个步骤:

    导入selenium库创建浏览器操作对象(需要驱动的路径)访问网站

示例代码如下:

# (1)导入selenium
from selenium import webdriver

# (2)创建浏览器操作对象
path = 'chromedriver.exe'  # 驱动的路径
browser = webdriver.Chrome(path)

# (3)访问网站
url = 'https://www.jd.com'

browser.get(url)  # 打开网址

content = browser.page_source  # 页面内容(源码)
print(content)

四、Selenium的元素定位

元素定位:自动化要做的就是模拟鼠标和键盘来操作(点击输入等)这些元素(例如百度一下的搜索按钮)。操作这些元素的前提是要找到它们,webdriver提供了很多定位元素的方法。

注:selenium库更新了,从3.0版本升级到了4.0,所以以前的老函数弃用了,下面我会把新老函数一起记录下来。解决方案有两种:一是把最新下载的selenium库卸载,然后指定安装版本为3.0系列的,用老方法。二是使用新函数(推荐)。

老函数有以下六种

    find_element_by_id (常用)find_element_by_namefind_element_by_xpath (常用)find_element_by_tag_namefind_element_by_css_selector (常用)find_element_by_link_text

具体使用如下,以百度以下的输入框,搜索按钮和左上角的’视频’超链接为例

# 根据id寻找对象
button = browser.find_element_by_id('su')

# 根据标签的属性值寻找对象
button = browser.find_element_by_name('wd')

# 根据xpath语句获取对象
button = browser.find_element_by_xpath('//input[@id="su"]')

# 根据标签的名字获取对象
button = browser.find_element_by_tag_name('input')

# 根据前端的语法来获取对象
button = browser.find_element_by_css_selector('#su')

# 根据链接的描述来获取对象
button = browser.find_element_by_link_text('视频')

我电脑上安装了最新的selenium库,新方法的用法也很简单

    首先导入from selenium.webdriver.common.by import By函数名是全部改为了find_element()或find_elements(),不加s返回一个对象,加s即返回一个列表。函数里面有两个参数,第一个参数是By.ID, 即通过id查找,第二个参数是id的值,和老函数其实也特别像。还多了一个根据类名获取对象。
button = browser.find_element(By.ID, 'su')
button = browser.find_element(By.NAME, 'wd')
button = browser.find_element(By.XPATH, '//input[@id="su"]')
button = browser.find_element(By.TAG_NAME, 'input')
button = browser.find_element(By.CSS_SELECTOR, '#su')
button = browser.find_element(By.link_TEXT, '视频')
# 根据类名获取对象
button = browser.find_element(By.CLASS_NAME, 's_ipt')

五、Selenium获取元素信息
    .get_attribute获取标签的属性.tag_name获取标签的名字.text获取元素文本(不是标签内部,而是尖括号之间的文本)

示例如下:

# 获取标签属性
input_ = browser.find_element(By.ID, 'su')
print(input_.get_attribute('value'))
# 获取标签的名字 
print(input_.tag_name)

# 获取元素文本
a = browser.find_element(By.link_TEXT, '新闻')
print(a.text)
输出结果:百度一下
		  input
		  新闻

总结
    selenium测试直接运行在浏览器中,并且能实现自动化selenium元素定位方法已经更新,建议使用新方法find_element返回一个对象,而find_elements返回一个列表,包含所有匹配对象get_attribute可以指定获取哪个属性的值,.text获取元素文本(尖括号之间的文本,标签之间夹着的文本)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772570.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号