zoukankan      html  css  js  c++  java
  • Selenium+Java(四)Selenium Xpath元素定位

    前言

    关于Selenium元素定位,这是最后一篇博客。

    Xpath定位可以实现的功能 Selenium+Java(三)Selenium元素定位中讲的定位方式也可以实现,具体要用那种定位方式要根据自己的实际情况来选择,灵活运用。

    成功定位到元素才是王道。

    一、Xpath层级与索引定位

    以12306官网为例:如果想要定位此li标签中的内容,li标签中的内容如果没有相应的属性,此时可以先定位到li的上层元素div或者ul,由上层元素再向下寻找。也可以由下层元素向上寻找,向上寻找与向下寻找差别不大使用“..”即可回到上层元素。

     

    //引用IE浏览器驱动
    System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
    //创建IE浏览器对象
    InternetExplorerDriver driver = new InternetExplorerDriver();
    //浏览器最大化
    driver.manage().window().maximize();
    //等待浏览器加载完毕
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    //打开网站
    driver.get("https://www.12306.cn/index/");
    //Xpath定位,先寻找到class属性为news-index的div元素,由此div向下寻找ul中的第一个li标元素中的a元素,如果需要寻找第n个li标签,只需要把1修改成n。
    driver.findElement(By.xpath("//div[@Class='news-index']/ul/li[1]/a"));

    二、Xpath属性定位

    以百度为例:此定位通过可通过标签的属性(id、name、class、其他属性)对元素进行定位

    //引用IE浏览器驱动
    System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
    //创建IE浏览器对象
    InternetExplorerDriver driver = new InternetExplorerDriver();
    //浏览器最大化
    driver.manage().window().maximize();
    //等待浏览器加载完毕
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    //打开网站
    driver.get("https://www.baidu.com/");
    //Xpath定位
    driver.findElement(By.xpath("//*[@id='kw']"));

    三、Xpath模糊定位

    //引用IE浏览器驱动
    System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
    //创建IE浏览器对象
    InternetExplorerDriver driver = new InternetExplorerDriver();
    //浏览器最大化
    driver.manage().window().maximize();
    //等待浏览器加载完毕
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    //打开网站
    driver.get("https://www.12306.cn/index/");
    //Xpath模糊定位属性
    driver.findElement(By.xpath("//*[contains(@data-href,'index.h')]"));
    //Xpath模糊定位开头
    driver.findElement(By.xpath("//*[starts-with(@id,'search_o')]"));
    //Xpath模糊定位显示文本
    driver.findElement(By.xpath("//*[contains(text(),'我的1230')]"));
  • 相关阅读:
    写在博客前面
    JavaAPI学习(一):API && String类 && Stringbuffer && StringBuilder
    Java面向对象(七):Object类 & 内部类 & 单例模式
    Java面向对象(六):抽象方法 & 接口 & 递归
    Java面向对象(五):OOP三大特性之多态 — final 关键字
    Java面向对象(四):OOP三大特性之封装与继承
    Java面向对象(三):Java权限修饰符—static关键字
    Java面向对象(二):成员变量—OOP中的内存管理—构造函数
    Java面向对象(一):方法—初识面向对象
    JavaSE学习(六):随机数—简单的排序算法
  • 原文地址:https://www.cnblogs.com/yogouo/p/11949095.html
Copyright © 2011-2022 走看看