selenium语法进阶+常用API

这篇具有很好参考价值的文章主要介绍了selenium语法进阶+常用API。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

浏览器操作

浏览器回退,前进 与刷新

浏览器窗口设置大小 

浏览器设置宽高 

浏览器窗口最大化 

浏览器控制滚动条 

信息打印 

打印页面的标题和当前页面的URL

定位一组元素 

鼠标和键盘事件 

键盘 

鼠标 

下拉框操作 

通过索引定位(selectByIndex(索引值(从0开始)))

通过value属性定位(selectByValue)

通过文本内容定位(selectByVisibleText)

文件上传 

多级框架/窗口定位 (switchTo())

弹窗 

警告弹窗与确认弹窗

提示弹窗 

截图 

关闭页面(quit和close)


浏览器操作

浏览器回退,前进 与刷新

浏览器的回退指的是从当前页面退回上一个页面,如下图:

selenium语法进阶+常用API,测试,selenium,测试工具

这里要注意页面和新建标签页的区别。

这里比如说我们打开百度搜索,然后搜索软件测试后进行回退:

    private static void test02() throws InterruptedException {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
       WebElement element= webDriver.findElement(By.cssSelector("#kw"));
       element.sendKeys("软件测试");
       Thread.sleep(3000);
       webDriver.navigate().back();
       
    }

回退的时候需要使用驱动提供的navigate中的back方法,当然,如果想要回到回退前的页面则可以使用navigate下的forward方法:

    private static void test02() throws InterruptedException {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
       WebElement element= webDriver.findElement(By.cssSelector("#kw"));
       element.sendKeys("软件测试");
       Thread.sleep(3000);
       webDriver.navigate().back();
        Thread.sleep(3000);
       webDriver.navigate().forward();

    }

当然,如果想刷新页面的话可以使用navigate下的refresh方法:

    private static void test02() throws InterruptedException {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        WebElement element= webDriver.findElement(By.cssSelector("#kw"));
        element.sendKeys("软件测试");
        Thread.sleep(3000);
        webDriver.navigate().back();
        Thread.sleep(3000);
        webDriver.navigate().forward();
        Thread.sleep(3000);
        webDriver.navigate().refresh();
       

    }

浏览器窗口设置大小 

浏览器窗口可以设置大小,可以设置窗口的宽,高,也可以使得窗口最大化

浏览器设置宽高 

如点击百度搜索页面的新闻按钮后的窗口设置宽高 

webDriver.manage().window().setSize(new Dimension(200,500));

selenium语法进阶+常用API,测试,selenium,测试工具

同时也可以最大化

浏览器窗口最大化 

 webDriver.manage().window().maximize();

selenium语法进阶+常用API,测试,selenium,测试工具 

浏览器控制滚动条 

浏览器滚动条的控制需要依靠js脚本才能实现 

如在前端页面中输入:

document.documentElement.scrollTop=9999

selenium语法进阶+常用API,测试,selenium,测试工具滚动条就会往下移动。那么我们在idea中如何实现:

((JavascriptExecutor)webDriver).executeScript("document.documentElement.scrollTop=19999");

selenium语法进阶+常用API,测试,selenium,测试工具 selenium语法进阶+常用API,测试,selenium,测试工具

信息打印 

打印页面的标题和当前页面的URL

 获取百度搜索页面的标题:

 String title= webDriver.getTitle();

获取百度搜索页面的URL: 

String url=webDriver.getCurrentUrl();
    private static void test05() {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        //获取当前页面的标题
       String title= webDriver.getTitle();
       //获取当前页面的URL
        String url=webDriver.getCurrentUrl();
        System.out.println("当前页面的标题为"+title);
        System.out.println("当前页面的url为"+url);
    }

selenium语法进阶+常用API,测试,selenium,测试工具

定位一组元素 

定位一组元素,就比如一些选项,他有几种标签类型,我们需要选中所有input的标签中type值为context的选项:

    private static void test06() {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("你要打开的页面");
        //获取所有的input标签
        List<WebElement> elements= webDriver.findElements(By.cssSelector("input"));
        //选中符合type的值为context的选项
        for (int i = 0; i <elements.size() ; i++) {
            if(elements.get(i).getAttribute("type").equals("context")){
                elements.get(i).click();
            }else {
                ;//什么也不干
            }

        }
    }

鼠标和键盘事件 

键盘 

比如我们在百度搜索框中输入软件测试后进行搜索,然后使用Ctrl+A选中搜索框中的软件测试,进行Ctrl+X,然后再Ctrl+V进行复制搜索

   private static void test07() throws InterruptedException {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        //搜索软件测试
        //WebElement element=webDriver.findElement(By.cssSelector("#kw"));
        webDriver.findElement(By.cssSelector("#kw")).sendKeys("软件测试");
        sleep(3000);
        //webDriver.manage().timeouts().implicitlyWait(1, TimeUnit.DAYS);
        //选中搜索框+ctrl+A
        webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL,"A");
        sleep(3000);
        //webDriver.manage().timeouts().implicitlyWait(1, TimeUnit.DAYS);
        //ctrl+x
       webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL,"X");
        sleep(3000);
        //webDriver.manage().timeouts().implicitlyWait(1, TimeUnit.DAYS);
        //ctrl+v
        webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL,"V");
        //webDriver.manage().timeouts().implicitlyWait(1, TimeUnit.DAYS);
       sleep(3000);
    }

使用键盘输入使用的是sendKeys中的参数keys调用相关的按键(如SHIFT,CONTROL等等)+对应的按键(需要用双引号)  

鼠标 

比如我们在搜索软件测试后在图片处进行右击:

selenium语法进阶+常用API,测试,selenium,测试工具


    private static void test08() throws InterruptedException {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        webDriver.findElement(By.cssSelector("#kw")).sendKeys("软件测试");
        webDriver.findElement(By.cssSelector("#su")).click();
        sleep(3000);
        //将鼠标移动到图片位置进行右击
     WebElement element=  webDriver.findElement(By.cssSelector("#s_tab > div > a.s-tab-item.s-tab-item_1CwH-.s-tab-pic_p4Uej.s-tab-pic"));
        //借助Actions
        Actions actions=new Actions(webDriver);
        //进行右击并展示
        actions.moveToElement(element).contextClick().perform();
    }

使用鼠标进行点击的时候需要借助Actions对象,使用时候使用perform来展示出效果。

常用的鼠标操作还有:

selenium语法进阶+常用API,测试,selenium,测试工具 

下拉框操作 

下拉框的操作需要借助Select的对象进行操作

通过索引定位(selectByIndex(索引值(从0开始)))

selenium语法进阶+常用API,测试,selenium,测试工具

    private static void test09() {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("需要访问的网址");
        WebElement element=webDriver.findElement(By.cssSelector("下拉框的css标志位"));
        //借助Select对象
        Select select=new Select(element);
        select.selectByIndex(0);
    }

通过value属性定位(selectByValue)

 

    private static void test09() {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("需要访问的网址");
        WebElement element=webDriver.findElement(By.cssSelector("下拉框的css标志位"));
        //借助Select对象
        Select select=new Select(element);
        //select.selectByIndex(0);
        select.selectByValue("下拉框的value属性对应的值");
    }

通过文本内容定位(selectByVisibleText)

 selenium语法进阶+常用API,测试,selenium,测试工具

    private static void test09() {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("需要访问的网址");
        WebElement element=webDriver.findElement(By.cssSelector("下拉框的css标志位"));
        //借助Select对象
        Select select=new Select(element);
        //select.selectByIndex(0);
        //select.selectByValue("下拉框的value属性对应的值");
        select.selectByVisibleText("C");
    }

文件上传 

文件上传就是选择文件上传的按钮的文章,使用sendKeys将文件所在的路径导入进行上传文件

selenium语法进阶+常用API,测试,selenium,测试工具

    private static void test10() {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("需要访问的网址");
        WebElement element=webDriver.findElement(By.cssSelector("文件上传框的css标志位"));
        element.sendKeys("文件路径,如E://xxx.xxx");
    }

多级框架/窗口定位 (switchTo())

由于我们直接使用选择器进行定位是在div下进行的,对于一些在frame下的标签我们是无法获得定位的,所以就要用到了多级框架和窗口定位, 对于frame使用:

selenium语法进阶+常用API,测试,selenium,测试工具

    private static void test11() {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("需要访问的网址");
        webDriver.switchTo().frame("frame的id");
        //找到标志所在的frame之后就可以正常使用了
        webDriver.findElement(By.cssSelector("选中元素的css标志位")).click();
    }

多级窗口定位与框架相似,使用 switchTo().window。

弹窗 

警告弹窗与确认弹窗

需要使用Alert对象,dismiss为取消,accept为确认

    private static void test12() {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("需要访问的网址");
       Alert alert= webDriver.switchTo().alert();
       //取消弹窗
        alert.dismiss();
        //确认弹窗
        alert.accept();
        //提示弹窗中输入内容
        alert.sendKeys("输入的内容");
        //进行确认
        alert.accept();
    }

提示弹窗 

需要我们输入内容后点击确认:

    private static void test12() {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("需要访问的网址");
       Alert alert= webDriver.switchTo().alert();
       //取消弹窗
        alert.dismiss();
        //确认弹窗
        alert.accept();
        //提示弹窗中输入内容
        alert.sendKeys("输入的内容");
        //进行确认
        alert.accept();
    }

截图 

对于测试的结果,我们有的需要使用截图来进行查看,使用自动化截图首先要在maven仓库中使用相关的依赖,在maven仓库搜索common-io

selenium语法进阶+常用API,测试,selenium,测试工具 

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.11.0</version>
</dependency>

导入到pom.xml中

selenium语法进阶+常用API,测试,selenium,测试工具 在百度搜索软件测试并进行截图保存:


    private static void test13() throws InterruptedException, IOException {
        WebDriver webDriver=new ChromeDriver();
        webDriver.get("https://www.baidu.com/");
        webDriver.findElement(By.cssSelector("#kw")).sendKeys("软件测试");
        webDriver.findElement(By.cssSelector("#su")).click();
        sleep(3000);
        //对搜索结果进行截图
       File file=((TakesScreenshot)(webDriver)).getScreenshotAs(OutputType.FILE);
       //将文件放到硬盘
        FileUtils.copyFile(file,new File("C:\\Users\\ht\\2023-0816jietu.png"));

    }

selenium语法进阶+常用API,测试,selenium,测试工具selenium语法进阶+常用API,测试,selenium,测试工具

截图完成。

关闭页面(quit和close)

对于测试后关闭页面使用driver.quit和driver.close

quit和close是有区别的,quit关闭页面后会清除掉缓存,而close则不清除缓存文章来源地址https://www.toymoban.com/news/detail-653195.html

到了这里,关于selenium语法进阶+常用API的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Selenium常用API详解,从入门到进阶(全套)

    目录 1、打开页面 2、查找页面元素 3、输入文本 4、点击操作 5、提交操作 6、清除文本 7、获取文本、属性 8、获取页面的标题和URL 9、窗口 9.1、设置窗口大小 9.2、窗口切换 9.2.1、为什么需要窗口切换? 9.2.2、获取句柄的方式 9.2.3、切换句柄 10、屏幕截图 10.1、为什么需要屏幕

    2024年02月12日
    浏览(36)
  • 自动化测试2:selenium常用API

    目录 1.webdirver API 1.1.定位元素 1.2CSS 1.语法 2,使用 1.3XPath定位 1.语法 2.使用 2.操作测试对象 2.1.鼠标点击与键盘输入 2.2submit 提交表单 2.3text 获取元素文本 3.添加等待 3.1.sleep休眠 3.2.智能等待 3.2.1.隐式等待 3.2.2显示等待 4.打印信息 4.1打印url 4.2打印title 5.浏览器的操作 5.1浏览器

    2024年02月09日
    浏览(43)
  • 软件测试 -- Selenium常用API全面解答(java)

    写在前面 // 如果文章有问题的地方, 欢迎评论区或者私信指正 目录 什么是Selenium 一个简单的用例  元素定位 id定位 xpath定位   name定位 tag name 定位和class name 定位 操作元素 click  send_keys submit text getAttribute 添加等待 显示等待 隐式等待  显示等待和隐式等待的特点 显示等待

    2024年03月28日
    浏览(47)
  • 【测试开发】第五节.测试——自动化测试(Selenium工具)

    作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:Java测试开发 每日一句: 人的一生,可以有所作为的时机只有一次,那就是现在!!! 前言 一、自动化测试的概念以及分类 二、Selenium—web自动化测试工具 2.1 自动化测试的一些前置工作 2.2 第一个自动化实例

    2024年02月04日
    浏览(62)
  • 自动化测试工具-Selenium:Selenium的核心三大组件详解

    目录 1. WebDriver 1.1 WebDriver的通信方式 1.2 WebDriver的功能 1.3 W3C推荐标准 2. Grid 3. IDE Selenium 是支持 web 浏览器自动化的一系列工具和库的综合项目。官方对Selenium认可的三大组件或API分别是: WebDriver、Selenium IDE、Grid。 其中,WebDriver又被称为Selenium的核心。 下面本篇文章将深度介

    2024年02月03日
    浏览(43)
  • 测试进阶必备,这5款http接口自动化测试工具不要太香~

    现在市场上能做接口自动化测试的工具有很多,一搜一大把,让人眼花缭乱。我们去选择对应实现方式时,不管是框架体系还是成熟稳定的工具,核心目的都是期望引入的技术能在最低投入的情况下达到最优效果。 那么我们选择依据出来了: 一是最低投入。 二是最优效果。

    2024年03月26日
    浏览(57)
  • 测试进阶必备,这5款http接口自动化测试工具真的很香

    现在市场上能做接口自动化测试的工具有很多,一搜一大把,让人眼花缭乱。我们去选择对应实现方式时,不管是框架体系还是成熟稳定的工具,核心目的都是期望引入的技术能在 最低投入 的情况下达到 最优效果 。 那么我们选择依据出来了: 一是最低投入。 二是最优效果

    2024年02月06日
    浏览(41)
  • 自动化测试工具——Selenium详解

    Selenium是一个用于Web应用程序测试的工具。是一个开源的Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器,支持的浏览器包括IE(7, 8,

    2024年01月20日
    浏览(60)
  • API测试工具之Apifox

    我们平时在做接口测试的时候,对于一些常用的接口测试工具的使用应该都非常熟悉了: 接口文档:Swagger、Yapi 接口测试:Postman、Postwoman Mock:EasyMock、Mockito、mock.js 性能测试:Jmeter、Locust ... 做接口测试,需要在电脑上安装那么多软件,你会不会感到很蛋疼? 老子就是不想

    2024年02月08日
    浏览(35)
  • 自动化测试工具Selenium的基本使用方法,软件测试基础

    browser.find_element(By.ID,‘kw’).send_keys(“美女”) browser.find_element_by_id(‘kw’).send_keys(‘性感’) 2.通过标签name属性进行定位 browser.find_element_by_name(“wd”).send_keys(“Linux”) browser.find_element(By.NAME,‘wd’).send_keys(“美女”) 3.通过标签名进行定位 browser.find_element_by_tag_name(“input”).

    2024年04月22日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包