zoukankan      html  css  js  c++  java
  • Web端自动化元素定位方法

    Web端自动化元素定位方法

    随着互联网的快速发展,版本迭代周期越来越短?需求越来越多?测试工作量越来越大?怎么保证质量?怎么保证上线周期?。如何实现既提高测试效率和覆盖率,又节约测试成本,是每一个企业追求的目标。为了解决上面的问题,越来越多的公司开始加入自动化测试。以下是一些常用的定位方法介绍

    一、常用方法

    1)通过class属性定位

    driver.findElement(By.className("spread")).sendKeys("你好");

    2)通过id属性定位

    driver.findElement(By.id("username")).sendKeys("你好");

    3)通过name属性定位

    driver.findElement(By.name("username")).sendKeys("你好");

    4)通过link属性定位

    driver.findElement(By.linkText("海贼王")).click();

    5)通过partialLink定位

    driver.findElement(By.partialLinkText("贼")).click();

    6)通过标签tabname定位

    driver.findElement(By.tagName("a")).click();

    7)通过css定位

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

    8)通过xapth定位

    driver.findElement(By.xpath("/html/body/div[1]/input[2]")).click();

    //通过xpath绝对路径的方式定位

    driver.findElement(By.xpath("//input[@value='查询']")).click();

    //通过相对路径的方式定位

    driver.findElement(By.xpath("//a[text()='百度一下']")).click();

    //相对路径方式,元素是可点击的链接文字

    上面列举的是同一个网页中常用的元素定位方法。那么遇到一些界面跳转,有下拉框,界面有多个frame,非网页弹窗,常用方法无法定位的情况怎么办呢?下面就给大家介绍下如何解决这些定位不到的方法。

    二、高阶方法

    1)页面跳转,光标还留在原界面,新界面元素定位不到。

    方式一:不关闭原窗口

    String old = driver.getWindowHandle();

    driver.getWindowHandle()://获取旧窗口句柄

    for (String i : driver.getWindowHandles()) {

    driver.getWindowHandles()://获取所有窗口的句柄

    if (!i.equals(old)) {

    driver.switchTo().window(i);

        break;}//对句柄进行判断,如果是新窗口,则切换光标

    }

    方式二:关闭原窗口:推荐使用

    String old = driver.getWindowHandle();

    driver.getWindowHandle()://获取旧窗口句柄

    for (String i : driver.getWindowHandles()) {

    driver.getWindowHandles()://获取所有窗口的句柄

    if (i.equals(old)) {

    driver.close();

    } else {

    driver.switchTo().window(i);

    break;

    }

    }

    2)下拉框中的内容定位不到

    Select s = new Select(driver.findElement(By.name("fruit")));//定位下拉框

    s.selectByIndex(1);//通过索引/下标获取下拉列表中的值

    s.selectByValue("lizhi");//通过value值获取下拉列表中的值

    s.selectByVisibleText("猕猴桃");//通过界面可见文本获取下拉列表中的值

    3)同一个页面,具有多个frame,frame中的元素定位不到

     以界面具有3个并列frame的情况进行距离

    步骤1:切换frame,进入左侧页面,再输入内容

    driver.switchTo().frame("leftframe");

    driver.findElement(By.id("left")).sendKeys("范冰冰");

    步骤2:返回默认状态

    driver.switchTo().defaultContent();

    步骤3:切换frame进入中间页面,再输入内容

    driver.switchTo().frame("middleframe");

    driver.findElement(By.id("middle")).sendKeys("刘亦菲");

    4)点击某个按钮后出现非网页弹窗无法定位

    driver.findElement(By.id("btnConfirm")).click();//定位按钮并进行点击的操作

    driver.switchTo().alert().accept();// 点击确定,accept:表示接受、同意的意思

    driver.switchTo().alert().dismiss();// 点击取消,dismiss表示取消的意思

    以上给大家介绍的是web页面中使用Java语言的元素的定位方法,Python语言的定位方式一样,只是语法不一样。

  • 相关阅读:
    Atitit 经济学常见的流派 古典主义与凯恩斯主义
    Atitit 学习方法 体系化学习方法 Excel 科目,分类,专业 三级分类。。 知识点。。 课程就是每一个知识点的详细化。。 比如经济学 类别 专业 xx概论知识点 3、金
    atiitt it学科体系化 体系树与知识点概念大总结.xlsx
    Atitit 减少财政支出普通人如何蹭政府补贴措施 attilax大总结.docx
    Atitit 信用管理概论 attilax学习心得
    Atitit.月度计划日程表 每月流程表v5
    Atitit 企业6大职能 attilax总结
    Atitit 常见每日流程日程日常工作.docx v8 ver ampm imp 签到 am y 天气情况检查 am y 晨会,每天或者隔天 am 每日计划(项目计划,日计划等。 am
    Atitit 财政赤字解决方案
    Atitit 建设自己的财政体系 attilax总结 1.1. 收入理论 2 1.2. 收入分类 2 1.3. 2 1.4. 非货币收入 2 1.5. 2 1.6. 降低期望 2 1.7.
  • 原文地址:https://www.cnblogs.com/wtx0/p/8535231.html
Copyright © 2011-2022 走看看