做网站为什么能挣钱,国外精产品1688,广西互联网营销公司,建设微网站平台作者简介#xff1a;大家好#xff0c;我是未央#xff1b; 博客首页#xff1a;未央.303 系列专栏#xff1a;Java测试开发 每日一句#xff1a;人的一生#xff0c;可以有所作为的时机只有一次#xff0c;那就是现在#xff01;#xff01;#xff01; 前言
一、… 作者简介大家好我是未央 博客首页未央.303 系列专栏Java测试开发 每日一句人的一生可以有所作为的时机只有一次那就是现在 前言
一、自动化测试的概念以及分类
二、Selenium—web自动化测试工具
2.1 自动化测试的一些前置工作
2.2 第一个自动化实例
2.3 总结
三、 Selenium常用方法
3.1 定位元素的方法
3.2 元素的操作
3.3 等待
3.3.1 强制等待
3.3.2 隐式等待
总结 前言 一、自动化测试的概念以及分类
自动化测试指软件测试的自动化在预设状态下运行应用程序或者系统.预设条件包括正常和异常最后评估运行结果。 自动化测试就是将人为驱动的测试行为转化为机器执行的过程。 自动化测试包括 界面UI自动化测试——移动端、web端 接口自动化测试 单元自动化测试 二、Selenium—web自动化测试工具
为什么我们选择这个自动化测试工具 2.1 自动化测试的一些前置工作
我们要想使用Selenium来完成web自动化测试首先要搭建起一个自动化测试环境。 Chrome浏览器Chrome的驱动ChromeDriver——》驱动版本要和你的Chrome浏览器版本对应起来Selenium工具包 配置操作步骤 Chrome驱动安装详见javaselenium环境搭建 Selenium工具包的导入在你要测试的Maven项目中导入该工具包 2.2 第一个自动化实例
在安装好浏览器对应的驱动后新建一个Maven项目导入Selenium工具包 创建测试实例FirstAutoTest新建一个类 展示实例 2.3 总结 简单自动化示例主要包含五个步骤: 1、创建驱动实例创建会话 2、访问网站 3、查找元素 4、操作元素 5、结束会话 三、 Selenium常用方法
3.1 定位元素的方法
1、CSS选择器——cssSelector 2、xpath选择器 3.2 元素的操作 当我们定位到了具体元素接下来我就应该对元素进行相关操作了比如输入文本内容、点击操作 常见的操作对象元素的方法有下面几个 1、click点击对象 2、sendKeys 在对象 上模拟按钮输入 3、clear清除对象输入的文本内容 4、submit提交——》等价于click click 和 submit 都可以操作按钮 注意 【前提submit 操作的是按钮】可以使用 submit 的地方都可以使用 click 来实现。 文本样式的超链接的触发只能通过 click点击的方式来触发。 如果使用 sumbit 的方式来触发就会报错。在 selenium 官方文档中更推荐使用 click 不推荐使用 submit。 ———————————————————————————————————————— getText用于获取元素的文本信息 3.3 等待
3.3.1 强制等待
名词解释强制线程休眠一定时间适合脚本调试时使用。
常用方法
Thread.sleep(long millis) 优点适合脚本调试时使用缺点不能准确把握需要等待的时间如果用例中大量使用会浪费不必要的等待时间影响用例的执行效率 影响效率 操作未完成等待结束导致系统报错操作完成时间未到导致浪费时间 代码举例 from selenium import webdriver
from time import sleepfrom selenium.webdriver.common.by import Byclass TestWait:def setup(self):self.driver webdriver.Chrome()self.driver.get(https://www.baidu.com)def teardown(self):self.driver.quit()def test_wait(self):sleep(3)print(hello baidu)self.driver.find_element(By.ID, kw).click()sleep(3)self.driver.find_element(By.ID, kw).send_keys(北京)sleep(3) 3.3.2 隐式等待
名词解释设置一个最长等待时间轮循查看页面是否加载完成默认 0.5 秒如果超过最长等待时间页面未加载完成则抛出异常。
常用方法driver.manage().timeouts().implicitlyWait(Duration duration); 好处: 只需设置一次全局都生效。如果超时时间内网页完成了全部加载则立即进行下面的操作。比sleep()智能很多。劣势: 隐式等待需要等到网页所有元素都加载完成才会执行下面的操作如果我需要操作的元素提前加载好了但是其他无关紧要的元素还没有加载完成那么还是需要浪费时间去等待其他元素加载完成。 代码举例 from selenium import webdriver
from time import sleepfrom selenium.webdriver import Keys
from selenium.webdriver.common.by import Byclass TestWait:def setup(self):self.driver webdriver.Chrome()self.driver.get(https://www.baidu.com)self.driver.maximize_window()self.driver.implicitly_wait(3)def teardown(self):self.driver.quit()def test_wait(self):print(hello baidu)self.driver.find_element(By.ID, kw).click()self.driver.find_element(By.ID, kw).send_keys(北京)self.driver.find_element(By.ID, kw).send_keys(Keys.ENTER)注隐式等待设置一个等待时间轮询查找默认0.5s元素是否出现如果在等待时间内没有出现则抛出异常 总结