python 自动化测试gui_GUI自动化测试

一、Selenium 2.0 的实现原理

Selenium 2.0,又称 Selenium WebDriver,它利用的原理是:使用浏览器原生的 WebDriver 实现页面操作。

Selenium WebDriver 是典型的 Server-Client 模式,Server 端就是 Remote Server。以下是 Selenium 2.0 工作原理的解析。

5ee5d8b7a2ef

Selenium WebDriver 的执行流程.png

1、当使用 Selenium2.0 启动浏览器 Web Browser 时,后台会同时启动基于 WebDriver Wire 协议的 Web Service 作为 Selenium 的 Remote Server,并将其与浏览器绑定。绑定完成后,Remote Server 就开始监听 Client 端的操作请求。

2、执行测试时,测试用例会作为 Client 端,将需要执行的页面操作请求以 Http Request 的方式发送给 Remote Server。该 HTTP Request 的 body,是以 WebDriver Wire 协议规定的 JSON 格式来描述需要浏览器执行的具体操作。

3、Remote Server 接收到请求后,会对请求进行解析,并将解析结果发给 WebDriver,由 WebDriver 实际执行浏览器的操作。

4、WebDriver 可以看做是直接操作浏览器的原生组件(Native Component),所以搭建测试环境时,通常都需要先下载浏览器对应的 WebDriver。

二、构建一个 Selenium 自动化测试用例示例

访问百度主页,搜索某个关键词,并验证搜索结果页面的标题是“被搜索的关键词”+“_ 百度搜索”。

5ee5d8b7a2ef

image.png

案例中用到了Chrome 浏览器,所以需要先下载 Chrome Driver (与chrome浏览器版本需要兼容)并将其放入环境变量。接下来,建立一个空的 Maven 项目,然后在 POM 文件中加入 Selenium 2.0 的依赖,如图 1所示

5ee5d8b7a2ef

在 POM 文件中加入 Selenium 2.0 的依赖.png

代码实现如下:

import org.junit.Assert;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

public class Python_Search {

public static void main(String[] args) throws InterruptedException{

//创建Chrome

WebDriver driver = new ChromeDriver();

//打开百度首页

driver.navigate().to("https://www.baidu.com");

//通过name属性找到搜索输入框

WebElement search_input = driver.findElement(By.name("wd"));

//输入关键字“python”

search_input.sendKeys("python");

//提交搜索请求

search_input.submit();

//等待3秒

Thread.sleep(3000);

//验证搜索结果页面的标题

Assert.assertEquals("python_百度搜索", driver.getTitle());

//关闭浏览器窗口

driver.quit();

}

}

5ee5d8b7a2ef

查找搜索输入框.png

补充说明:别忘了下载第三方驱动哦,selenium必须要依赖浏览器才能跑起来

selenium jar包可以去selenium官网下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值