Web自动化测试-【Selenium环境部署Edge】

Selenium Web自动化测试工具

之前写过一篇关于自动化测试的博客,里面是有的chrome驱动,由于不适配缘故,更新以下Edge驱动。 自动化测试

Selenium环境部署

  1. 准备 Edge 浏览器
  2. 准备 Edge 驱动包
    a .查看自己的Edge浏览器版本(浏览器版本和驱动版本一定要对应)在这里插入图片描述
    b .下载对应的驱动包,下载路径:https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/在这里插入图片描述在这里插入图片描述
    c .解压下载好的 驱动包,找到 msedgedriver.exe ,将其放在 Java 系统环境变量下。
    在这里插入图片描述
  3. 准备 selenium 工具包
		<dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>4.8.0</version>
        </dependency>
  1. 准备Java8及以上环境

Selenium - 驱动 - 浏览器 三者的关系

在这里插入图片描述
我们可以启动以下驱动,可以看到驱动绑定的端口:127.0.0.1:9515
在这里插入图片描述
在这里插入图片描述

编写一个简单的自动化测试用例

  1. 创建 maven 项目
  2. 导入 selenium 依赖
  3. test/java/com 下自定义一个包
  4. 编写代码
    自动化测试类:
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author SunYuHang
 */

public class AutoTest {
   
   
    //打开我自己发布的博客网站 登录博客网站  
    public void Test() throws InterruptedException {
   
   
        EdgeOptions options = new EdgeOptions();
        options.addArguments("--remote-allow-origins=*");
        EdgeDriver driver = new EdgeDriver(options);
        driver.navigate().to("http://43.140.252.242:9090/login.html");
//        driver.get("http://43.140.252.242:9090/login.html");
        driver.findElement(By.cssSelector("#username")).sendKeys("admin");
        Thread.sleep(5000);
        driver.findElement(By.cssSelector("#password")).sendKeys("admin");
        Thread.sleep(5000);
        driver.findElement(By.cssSelector("#submit")).click();
        Thread.sleep(5000);
        driver.quit();
    }
}

运行测试类的主类:

public class RunAutoTest {
   
   
    public static void main(String[] args) throws InterruptedException {
   
   
        AutoTest autoTest = new AutoTest();
        autoTest.Test();
    }
}

QQ录屏20230409160030

这个代码运行起来就会在我的博客系统页面实现自动登录。
简单自动化示例主要包含5个步骤

  1. 创建驱动示例,创建会话
  2. 访问网站
  3. 查找元素
  4. 操作元素
  5. 结束会话

Selenium 基础方法

Selenium 常见的元素操作

1.查找页面元素

findElement()

参数:By类(通过什么方式来查找元素,例如xpath)
返回值:webElement

  • 当元素可以在页面中找到,程序正确退出
  • 当元素在页面中找不到时,程序执行报错

findElements()

参数:By类 (通过什么方式来查找元素)
返回值:List< WebElement >

2.元素定位的方式-By类

元素定位的方式(By 类后面跟的内容),主要分为两种:selectorxpath
selector 又分为 基础选择器和复合选择器

此处用 cssSelector 来举例

By.cssSelector("页面元素")

选择元素的步骤:
打开浏览器,F12打开开发者工具,然后选择元素
在这里插入图片描述

在这里插入图片描述
然后将 copy 的粘贴在 By.cssSelector("")的引号里面即可。

xpath语法

层级: /代表子集, //代表跳级
属性:@
函数:contains()等

还是按照上面的步骤,我们给大家复制一段xpath来看看。
在这里插入图片描述

复制XPath://*[@id="su"]
复制完整的XPath:/html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[2]/input
完整的就是找寻 html 标签下紧邻的 body 标签下紧邻的第一个 div 下紧邻的…的 input 标签。
不完整的就是 跳着找到 id="su"的元素

【拓展】那么我们为什么要了解xpath的语法呢?

因为自动化测试要求元素必须要唯一。但是手动在页面复制的selector或者xpath并不一定唯一,需要我们手动的进行小范围的修改。

【拓展】那么我们如何确定一个xpath在页面中是否唯一呢?

  1. F12打开开发者工具
  2. Ctrl+f就会弹出一个搜索框,如果显示1,则表示唯一,反之不唯一.在这里插入图片描述

3.输入文本 sendKeys

仅适用与文本字段和内容可编辑的元素(用于其他元素也不会报错)

两种方式:

//方式一
WebElement ele = driver.findElement(By.cssSelector("#kw"));
ele.sendKeys("孙宇航");
//方式二
driver.findElement(By.cssSelector("#kw")).sendKeys("孙宇航");

4.点击 click

用于点击一个按钮

driver.findElement(By.cssSelector("#su")).click();

5.提交 submit

submit 相当于通过回车键提交,但是 selenium 官方不推荐使用 submit,更推荐 click。因为 submit 仅适用于表单元素,而且能使用 submit 提交,就一定能使用 click 代替,而反过来不行。

6.清除 clear

使用场景不多,适用于频繁的测试输入是否可以重复输入

driver.findElement(By
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙宇航的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值