
UI自动化
python+selenium+pytest
肖遥Janic
学习AI,实践AI,分享AI|
人生有无限可能|Be prepared. Be patient~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Selenium 执行JavaScript语句
Selenium 提供了两种执行 JavaScript 脚本的方法: execute_script:同步执行——常用 execute_async_script:异步执行 应用场景1:时间输入框 有些时间输入框控件,添加了 readonly 属性,限制该控件只读,不可写入,那就无法直接通过 send_keys() 输入内容。 对于这种情况的处理方式及步骤: 通过 JavaScript 脚本移除 readonly 属性 清空输入框内容 按时间格式输入信息 from selenium import原创 2020-08-06 18:22:56 · 1586 阅读 · 0 评论 -
Selenium 3种等待方式
加入等待时间,主要是考虑到网页加载需要时间,可能由于网速慢,或者使用了 ajax 技术实现了异步加载等,如果程序找不到指定的页面元素,就会导致报错发生。 常用的有3种等待方式: 强制等待 隐式等待 显示等待 强制等待 使用 Python 自身的库 time.sleep() 可以实现强制等待。 强制等待使用简单,但是,当网络条件良好的时候,建议减少使用,因为如果频繁使用强制等待的方式等待元素加载,会导致整个项目的自动化时间延长。 这种等待方式的使用场景主要是脚本调试。 隐式等待 隐式等待实际上是,设置原创 2020-08-05 23:14:50 · 547 阅读 · 0 评论 -
Selenium API-WebDriver 方法
关于常用的 WebDriver 方法,主要是回退、前进、刷新关闭浏览器等 序号 方法/属性 描述 1 driver.back() 浏览器页面后退 2 driver.forword() 浏览器页面前进 3 driver.refresh() 刷新当前浏览器页面 4 driver.maximize_window() 使浏览器窗口最大化 5 driver.set_window_size() 设置浏览器窗口为指定尺寸 6 driver.close() 关闭当前窗口 7 driv原创 2020-08-05 11:18:09 · 197 阅读 · 0 评论 -
Selenium alert 弹窗处理
页面弹窗有 3 种类型: alert(警告信息) confirm(确认信息) prompt(提示输入) 对于页面出现的 alert 弹窗,Selenium 提供如下方法: 序号 方法/属性 描述 1 accept() 接受 2 dismiss() 取消 3 text 获取显示的文本 4 send_keys() 输入内容 对应处理方式: alert(警告信息):WebDriver.switch_to.alert.accept() confirm(确认信息): We原创 2020-08-06 10:58:44 · 2311 阅读 · 0 评论 -
Selenium API-WebElement 属性
当我们使用 Selenium 的定位方法定位到元素之后,会返回一个 WebElement 对象(<class 'selenium.webdriver.remote.webelement.WebElement'>),该对象用来描述 Web 页面上的一个元素,那么,关于元素的常用属性,主要有: 序号 方法/属性 描述 1 WebElement.id 获取元素的标示 2 WebElement.size 获取元素的宽与高,返回一个字典 3 WebElement.rect 除了获取原创 2020-08-05 14:28:08 · 1105 阅读 · 0 评论 -
selenium 环境搭建
Selenium 环境的安装主要就是安装两样东西: Selenium 客户端库和浏览器 驱动(WebDriver) 本文是以 Python 及 Chrome 浏览器为例,讲解 Selenium 环境的搭建。 如果觉得下载网速慢,以下的网盘链接整理了搭建所需的软件: selenium 环境搭建–提取码:sese Python 安装 在搭建 Selenium 环境之前,提前安装好 Python。可参考: Python如何安装 Python官方下载地址 安装Python需要注意的地方: 将 Python 执行原创 2020-08-03 18:02:01 · 770 阅读 · 0 评论 -
Selenium 屏幕截图
在自动化测试程序运行时,有些地方出现了 bug,此时,我们希望可以将当前运行的屏幕的截图保存下来,方便开发者后续进行调试与修复。 Selenium 提供的屏幕截屏方法: 序号 方法/属性 描述 1 save_screenshot(filename) 截取当前屏幕截图,并保存为指定文件,filename 为指定的保存路径或图片文件名 2 get_screenshot_as_base64() 获取当前屏幕截图 base64 编码字符串 3 get_screenshot_as_file(f原创 2020-08-06 11:26:02 · 389 阅读 · 0 评论 -
Selenium API-WebElement 方法
关于 WebElement 对象的方法,常用的如下表所示: 序号 方法/属性 描述 1 WebElement.click() 单次点击 2 WebElement.send_keys() 输入指定内容 3 WebElement.clear() 清空输入框内容 4 WebElement.get_attribute() 获取元素的属性值 5 WebElement.is_seleted() 判断元素是否被选中,返回一个 bool 类型值 6 WebElement.is_enabl原创 2020-08-05 15:33:17 · 871 阅读 · 0 评论 -
Selenium select-下拉列表处理
针对 select 标签的下拉列表,Selenium 提供了 Select 类进行操作: from selenium.webdriver.support.ui import Select Select 类常用方法: 序号 方法/属性 描述 1 select_by_value() 根据值选择 2 select_by_index() 根据索引选择(从1开始) 3 select_by_visible_text() 根据文本选择 4 deselect_by_value() 根据值反选原创 2020-08-06 16:18:08 · 710 阅读 · 0 评论 -
Selenium frame 切换处理
HTML 中,frame 标签有3种类型:frameset、frame、iframe。 对于 frameset ,跟其他普通标签没有区别,都可以正常定位。 而 frame 与 iframe 属于特殊的一种类型,它们内部会包含一个被嵌入的另一份 HTML 文档。 在使用 Selenium 打开网页时,并不包含被嵌入的 HTML 文档。 如果需要操作被嵌入的 HTML 文档内的元素,必须将 操作范围 切换到被嵌入的 HTML 文档中。 Selenium 提供的方法是: WebDriver.switch_to原创 2020-08-06 14:31:49 · 822 阅读 · 0 评论 -
Selenium API-WebDriver 属性
打开浏览器,能够定位的内容都在 HTML 代码段内的 <body>页面内容</body> 中,对于浏览器上的当前页面标题,url等,都是无法通过元素定位来操作的。 故此,有特定的 WebDriver 属性来完成这一类的操作。 序号 方法/属性 描述 1 driver.title 获取当前页面的标题 2 driver.current_url 获取当前页面的链接地址 3 driver.name 获取浏览器名称 4 driver.page_source 获取当前原创 2020-08-05 11:00:45 · 354 阅读 · 0 评论 -
selenium 定位方式1
Selenium 常用的定位方式8种。 1. find_element_by_id 对于 Web 页面,id 是最理想的定位方式,一般前端 HTML 代码都会尽量保证 id 的唯一性。 1.1 find_element_by_id 应用 # find_element_by_id 的应用1:定位百度输入框 from selenium import webdriver # 导入 webdriver 模块 from time import sleep # 导入 sleep 模块,可以使程序强制休眠 dri原创 2020-08-03 21:48:53 · 343 阅读 · 0 评论 -
Selenium 窗口切换
在浏览网页的时候,有时点击一个链接或者按钮,会弹出一个新的窗口。 使用 Selenium 进行 Web 自动化测试,如果弹出新窗口时,没有对窗口进行切换,那么,WebDriver 对象 的焦点对应的,依然是旧窗口,后续的自动化操作,将继续在旧窗口中进行。 实例验证: # 模拟场景:打开百度,点击左上角“视频”链接,打印出当前`WebDriver 对象` 对应的窗口信息 from selenium import webdriver from time import sleep driver = webdri原创 2020-08-06 09:49:06 · 590 阅读 · 0 评论 -
selenium 定位方式4-xpath
Selenium 提供的另一种,能够唯一定位的方式: find_element_by_xpath XPath 基础知识 XPath (XML Path Language) 是由国际标准化组织 W3C 指定的,用来在 XML 和 HTML 文档中选择节点的语言。 XPath 学习链接 目前主流浏览器 (Chrome,Firefox,Edge,Safari) 都支持 XPath 语法。 XPath 相对于 css 选择器的优势: 有些场景使用 css 定位元素很麻烦,而 XPath 却比较方便 X原创 2020-08-04 19:01:39 · 602 阅读 · 0 评论 -
Selenium API-鼠标与键盘事件
鼠标事件 Selenium 中的鼠标事件被封装在 ActionChains 类中,导入方式: from selenium.webdriver.common.action_chains import ActionChains 官方文档:selenium.webdriver.common.action_chains ActionChains 常用的方法: 序号 方法/属性 描述 1 click(self, on_element=None) 单击鼠标左键 2 click_and_hold(原创 2020-08-05 17:17:42 · 377 阅读 · 0 评论 -
selenium 定位方式5
Selenium 8大定位方法中的最后一个 find_element_by_tag_name,这是所有定位方式中最不理想的定位方式,主要是因为一个页面中,存在相当多的相同的标签,基本做不到唯一定位,通常只能默认选择第一个定位到的元素。 # find_element_by_tag_name 的应用:根据 tag_name 定位元素 from selenium import webdriver # 导入 webdriver 模块 from time import sleep # 导入 sleep 模块,可以原创 2020-08-04 23:09:05 · 426 阅读 · 0 评论 -
selenium 定位方式2
1. find_element_by_link_text 此定位方法只针对 HTML 中的 <a>内容</a> 标签使用,一般会对应一个可跳转的链接,通过 a 标签中的内容定位元素。 1.1 find_element_by_link_text 应用 # find_element_by_link_text 的应用1:点击“hao123”,跳转值 hao123 页面 from selenium import webdriver # 导入 webdriver 模块 from time原创 2020-08-04 07:23:10 · 334 阅读 · 0 评论 -
关于Web端-UI自动化测试
在手工测试阶段,针对项目输出了测试用例,如果这些测试用例需要在版本迭代的过程中,需要进行回归测试,通过手工重复地执行测试用例,将会耗费大量的人力。 为此应运而生就有了自动化测试,通过使用自动化工具,将按照测试用例进行点点操作,校验的工作,交给代码程序来执行,测试工作,就变得省心省力了。 **重点:**测试用例是自动化测试脚本的依据,一切不基于测试用例而写的自动化脚本都是耍流氓。 关于UI自动化测试 UI 自动化的本质: 定位元素 操作元素 模拟页面动作 断言结果 生成报告 基于以上5个本质,自动化测原创 2020-08-03 11:33:52 · 1988 阅读 · 0 评论 -
selenium 定位方式3-css_selector
关于页面元素定位,可以根据 id、class、name 属性以及 link_text。 其中 id 属性是最理想的定位方式,class 与 name 属性,有时候也还行。 但是,如果要定位的元素,没有上述的属性,或者通过上述属性找到多个元素,该怎么办? Selenium 提供了2种可以唯一定位的方式: find_element_by_css_selector find_element_by_xpath find_element_by_css_selector 原理 HTML 中经常要为页面上的元素指定显原创 2020-08-04 14:39:25 · 1589 阅读 · 2 评论 -
Selenium 简介
Selenium 是一个 Web 应用的自动化框架。主要应用于 Web 应用程序的自动化测试。 通过它,测试工程师可以写出自动化程序,模拟人在浏览器里操作 Web 界面。 比如点击界面按钮,在文本框中输入文字等操作。 除此以外,它还支持所有基于 Web 的管理任务自动化。 Selenium 官网 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tuHjcoa8-1596440119875)(https://www.selenium.dev/images/selenium_log原创 2020-08-03 15:36:37 · 549 阅读 · 0 评论