Selenium常用API详解

1、打开关闭页面

 driver.get("https://www.baidu.com");
 driver.quit();

2、查找定位页面元素

在Selenium中,在打开页面的情况下,通过findElement方法,即可定位页面元素

  • 定位的方法有很多
    id,name,class name,link text,
    partial link text,tag name,xpath,css selector

百度页面的搜索框
在这里插入图片描述

 driver.findElement(By.id("kw"));
 driver.findElement(By.xpath("//*[@id=\"kw\"]"));

3、操作测试对象

  • 前面知识都是定位元素,定位只是第一步,定位之后需要对这个元素进行操作,取决于定位元素需要进行的下一步操作。

1、键盘输入文本

百度的文本框输入

  driver.findElement(By.cssSelector("#kw")).sendKeys("迪丽热巴");

2、鼠标点击操作

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

3、提交操作

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

4、清除文本

 driver.findElement(By.cssSelector("#kw")).clear();

5、获取文本

在这里插入图片描述

 String text = driver.findElement(By.xpath("//*[@id=\"hotsearch-content-wrapper\"]/li[1]/a/span[2]")).getText();
 System.out.println(text);

在这里插入图片描述

4.打印信息

获取页面的标题和URL

 driver.get("https://www.baidu.com"); 
        String text = driver.getTitle();
        System.out.println(text);
        System.out.println(driver.getCurrentUrl());

在这里插入图片描述
在这里插入图片描述

5、窗口

  • 设置窗口大小
 driver.get("https://www.baidu.com");//打开百度页面
        driver.manage().window().maximize();
        driver.manage().window().minimize();
        driver.manage().window().fullscreen();//全屏
        driver.manage().window().setSize(new Dimension(50,90));//手动设置大小

6、屏幕截图

  • 程序的执行速度快于页面渲染的速度(可能是网速的原因),会导致自动化执行的时候,找不到页面元素,因此需要记录当时的场景

  • 导入截图的包

<dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>

7、等待

  • 强制等待
    通过线程阻塞来进行,也就是Thread.sleep() ,这种方式在自动化中会用到,但是用的不是很多,假设一个用例设置5s的等待时间,那么100个测试用例效率就十分低下,而且很大概率,在我们设置的等待时间之内,页面就已经渲染出来了。
    Thread.sleep(5000);
  • 隐式等待
    隐式等待作用于driver的整个生命周期,会在你设置的一个时间内,反复判断元素是否存在,直到元素被找到才停止等待,若超出时间,就执行下一步
 driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(2));
  • 显示等待
    当等待的条件满足后(一般用来判断需要等待的元素是否加载出来),就继续下一步操作。等不到就一直等,如果在规定的时间之内都没找到,那么就跳出Exception,和隐式等待不同的是,显示等待一般作用某一条代码
new WebDriverWait(driver,Duration.ofSeconds(2)).until(drivers->driver.findElement(By.cssSelector("#\\31  > div > div > div > div > div.cos-row.row-text_Johh7.row_5y9Az > div > a > div > p > span > span")));

8、浏览器导航

  • 前进、后退、刷新
 driver.get("https://www.baidu.com");
        driver.findElement(By.cssSelector("#kw")).sendKeys("迪丽热巴");
        driver.findElement(By.cssSelector("#su")).submit();

        driver.navigate().back();//回退
        Thread.sleep(5000);
        driver.navigate().forward();//前进
        Thread.sleep(5000);

        driver.navigate().refresh();//刷新
        Thread.sleep(5000);

        driver.quit();//退出

9、弹窗

  1. 弹窗类型

警告弹窗alert、确认弹窗confirm、提示弹窗prompt
在这里插入图片描述

  1. 处理弹窗的步骤
  • 获取浏览器地址
  • 切换到弹窗
  • 选择处理方式:输入文本,确认,取消

driver.get("file:///D:/%E4%B8%8B%E8%BD%BD/JAVA/selenium-html/confirm.html");//确认弹窗
driver.get("file:///D:/%E4%B8%8B%E8%BD%BD/JAVA/selenium-html/Prompt.html");//提示弹窗

driver.findElement(By.cssSelector("body > input[type=button]")).click();

 Alert alert = driver.switchTo().alert();
 alert.sendKeys("我真的输入了");

 alert.accept();
 alert.dismiss();//点击取消

10、选择框

  • 下拉框里的内容需要进行两次定位,先定位到下拉框对下拉框进行操作后,再定位到下拉框内里的选项

    根据文本选择
    
    根据属性值选择
    
    根据序号选择(序号从0开始)
    

在这里插入图片描述

  driver.get("file:///D:/%E4%B8%8B%E8%BD%BD/JAVA/selenium-html/select.html");
  WebElement ele = driver.findElement(By.cssSelector("#ShippingMethod"));
  Select select = new Select(ele);
      
  select.selectByVisibleText("UPS Next Day Air Saver ==> $11.61");//文本
  select.selectByValue("10.69");//值
  select.selectByIndex(2);//序号

11、文件上传

  • 这里并不是直接把文件上传到服务器了,而是把要上传的文件的绝对路径放在了这里
    -在这里插入图片描述
 driver.get("D:\\下载\\JAVA\\selenium-html\\upload.html");
 driver.findElement(By.cssSelector("body > div > div > input[type=file]"))
                .sendKeys("C:\\Users\\13475\\Desktop\\java\\数据库.docx");

12、浏览器参数设置

  • 实际的工作中,测试人员将自动化部署在机器上自动执行,不会一直盯着自动化执行的过程,而是直接查看自动化执行的结果。
  • EdgeDriver类提供了一个构造参数,可以实现以上场景,也叫做“无头模式”,不打开浏览器,直接显示测试结果
   EdgeOptions options = new EdgeOptions();
        options.addArguments("-headless");
        EdgeDriver driver = new EdgeDriver(options);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值