【软件测试】selenium中元素的定位

1.元素的定位

不管用那种方式,必须保证页面上该属性的唯一性

1.CSS 定位

  • CSS(Cascading Style Sheets)是一种语言,它被用来描述HTML 和XML 文档的表现。
  • CSS 使用选择器来为页面元素绑定属性。这些选择器可以被selenium 用作另外的定位策略
  • CSS的获取可以用chrome的F12开发者模式中Element-右键-copy-copy selector来获取

**id选择器,**类选择器,标签选择器,父代选择器

2.Xpath定位

2.第一个测试案例

在百度首页输入框中输入软件测试去查找,并验证搜索结果

java 复制代码
    private static void test02() throws InterruptedException {
        // 创建驱动
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        WebDriver webDrive = new ChromeDriver(options);
        // 打开百度页面(
        webDrive.get("https://www.baidu.com");
        // 输入软件测试
        webDrive.findElement(By.cssSelector("#kw")).sendKeys("软件测试");
        // 点击百度一下按钮
        webDrive.findElement(By.cssSelector("#su")).click();
        // 验证结果,找到'软件测试'文案对应的元素
        // 等待4s
        sleep(4000);
        List<WebElement> webElements = webDrive.findElements(By.cssSelector("em"));
        if (webElements.size() > 0) {
            System.out.println("测试成功");
        } else {
            System.out.println("测试失败");
        }
    }

可以看到运行结果如下:

3.测试练习

  • click点击对象
  • send_keys 在对象上模拟按键输入
  • clear 用于清空对象输入的文本内容
  • submit 用于提交,点击的元素必须在form表单中
  • text 用于获取元素的文本信息

1.添加等待

强制等待:sleep(1000)

隐式等待:

显示等待:

2.获取url,title

java 复制代码
        // 获取当前页面的url
        String url = webDriver.getCurrentUrl();
        // 获取到当前页面的title
        String title = webDriver.getTitle();

3.对浏览器大小进行设置

最大化: maximize

设置大小:setSize

全屏:fullScreen

java 复制代码
        // 浏览器最大化
        webDriver.manage().window().maximize();
        // 浏览器全屏
        webDriver.manage().window().fullscreen();
        // 设置浏览器高度和宽度像素点都是500px
        webDriver.manage().window().setSize(new Dimension(500, 500));

4.操作浏览器前进后退

navigate

java 复制代码
        webDriver.navigate().back();
        sleep(3000);
        // 浏览器前进
        webDriver.navigate().forward();
        sleep(3000);
        // 浏览器刷新
        webDriver.navigate().refresh();

5.定位一组元素

java 复制代码
        // 获取当前页面的url
        String url = webDriver.getCurrentUrl();
        // 获取到当前页面的title
        String title = webDriver.getTitle();

        // 浏览器最大化
        webDriver.manage().window().maximize();
        // 浏览器全屏
        webDriver.manage().window().fullscreen();
        // 设置浏览器高度和宽度像素点都是500px
        webDriver.manage().window().setSize(new Dimension(500, 500));

        webDriver.navigate().back();
        sleep(3000);
        // 浏览器前进
        webDriver.navigate().forward();
        sleep(3000);
        // 浏览器刷新
        webDriver.navigate().refresh();

        // 按下Control+A
        webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL + "A");
        sleep(3000);
        // 按下Control+X
        webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL + "X");
        sleep(3000);
        // 按下Control+V
        webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL + "V");

        //右击按钮
        actions.contextClick(target).perform();

        // 获取到所有的input标签对应的元素
        List<WebElement> webElements = webDriver.findElements(By.cssSelector("input"));
        // 判断每一个input标签里面type值是checkbox进行点击,否则不点击
        for(int i = 0; i < webElements.size(); i++) {
            if(webElements.get(i).getAttribute("type").equals("checkbox")) {
                webElements.get(i).click();
            } else {
                ;
            }
        }
相关推荐
SRC_BLUE_172 小时前
[网络爬虫] 动态网页抓取 — Selenium 入门操作
网络·爬虫·selenium·测试工具
互联网杂货铺7 小时前
python+pytest 接口自动化测试:参数关联
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·pytest
黑客笔记13 小时前
读书报告」网络安全防御实战--蓝军武器库
测试工具·web安全·网络安全
北京_宏哥16 小时前
《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)
java·前端·selenium
北京_宏哥16 小时前
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
java·selenium·前端工程化
自由鬼16 小时前
免费开源抓包工具Wireshark介绍
运维·服务器·网络·测试工具·网络安全·wireshark
大话性能17 小时前
性能测试误区
测试
海姐软件测试17 小时前
Deepseek如何写测试用例
测试工具·面试
不脱发的猴子1 天前
Wireshark使用教程
网络·测试工具·wireshark
waicsdn_haha1 天前
Postman v11 安装与API测试入门教程(Windows平台)
人工智能·windows·测试工具·mysql·postman·dbeaver·rest