• Java+selenium之WebDriver定位页面元素(二)


    Selenium-Webdriver 提供了强大的元素定位方法,支持以下三种方法: 单个对象的定位方法,多个对象的定位方法和层级定位

    1. 定位单个元素

     1 // 对于元素的属性包含 id 的情况适用,推荐使用
     2 WebElement we = drive.findElement(By.id("id"));
     3 // 对于元素的属性包含 name 的情况适用,推荐使用
     4 WebElement we = drive.findElement(By.name("name"));
     5 // 通用定位方式,对于不好定位的元素适用 ,推荐使用
     6 WebElement we = drive.findElement(By.xpath("xpathExpression"));
     7 // 适用于链接类的元素,即 <a> 标签,包含 herf 属性的元素
     8 WebElement we = drive.findElement(By.linkText("linkText"));
     9 // 适用于链接类的元素,模糊匹配,即包含 herf 属性的元素
    10 WebElement we = drive.findElement(By.partialLinkText("linkText"));
    11 // 对于元素的属性包含 class 的情况适用, 处理复合型class(中间有空格的classname)的方法 ,处理方法只选择class属性中的一个值
    12 WebElement we = drive.findElement(By.className("className"));
    13 // 通用定位方式,对于不好定位的元素适用
    14 WebElement we = drive.findElement(By.cssSelector("selector"));
    15 // 通用定位方式,用于层级定位
    16 WebElement we = drive.findElement(By.tagName("tagName"));

    2. 定位多个元素

    findElements()方法可以返回一个符合条件的元素 List 

    1 // 定义了一个集合,将 class 一样的元素一次性定位出来
    2 List<WebElement> elements = driver.findElements(By.className("className"));
    3 // 通过集合的下标进行操作,集合的第一位下标是0 ,参数index 就是下标
    4 elements.get(index).click();

    3. 层级定位

      层级定位的思想是先定位父元素,然后再从父元素中精确定位出其我们需要选取的子元素。层级定位一般的应用场景是无法直接定位到需要选取的元素,但是其父元素比较容易定位,通过定位父元素再遍历其子元素选择需要的目标元素,或者需要定位某个元素下所有的子元素。比较典型的应用是表格的定位。

    1 // 得到 table 元素对象   
    2 WebElement table = driver.findElement(By.id("id"));   
    3 // 得到 table 表中所有行对象,并得到所要查询的行对象。   
    4 List<WebElement> rows = table.findElements(By.tagName("tr")); 
    5 // 定位下拉列表
    6 WebElement select = driver.findElement(By.id("id")); 
    7 // 从下拉列表中查找所有的选项
    8 List<WebElement> option = a.findElements(By.tagName("option"));
    兴趣是最好的老师,知识改变格局,转载请注明出处!
  • 相关阅读:
    POJ 1161 Walls ( Floyd && 建图 )
    POJ 1252 Euro Efficiency ( 完全背包变形 && 物品重量为负 )
    POJ 3111 K Best ( 二分 )
    2017乌鲁木齐网络赛 J题 Our Journey of Dalian Ends ( 最小费用最大流 )
    POJ 2112 Optimal Milking ( 经典最大流 && Floyd && 二分 )
    POJ 3281 Dining ( 最大流 && 建图 )
    POJ 2391 Ombrophobic Bovines ( 经典最大流 && Floyd && 二分 && 拆点建图)
    冲刺第一周第一天
    学习进度条12/3到12/9
    四则运算2
  • 原文地址:https://www.cnblogs.com/andrew209/p/9011617.html
Copyright © 2020-2023  润新知