selenium-webdriver八种定位元素的常用方式

Posted 开发+测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium-webdriver八种定位元素的常用方式相关的知识,希望对你有一定的参考价值。

         /*<div id="divId">

       <input id="userid" type="text" value="liuhaixia" title="用户名"  name="userid" class="uid">

           <input id="password" type="password" value="123456" title="密码"  name="password">

           <a href="http://192.168.66.71:8080/dss" >超链接</a>

     </div>*/

         //getTagName()获得标签名称

         //getAttribute("属性名称")获得某属性的值

  public void locateOne() throws IOException{

                  WebDriver driver = new FirefoxDriver();

                   driver.get("http://192.168.2.128:8080/selenium/index.jsp");

                   //根据id

                   System.out.println("---------1、根据id定位---------");

                   WebElement eleById = driver.findElement(By.id("userid"));

                   System.out.println(eleById.getTagName());

                   System.out.println(eleById.getAttribute("title"));

                   //根据name

                   System.out.println("---------2、根据name定位---------");

                   WebElement eleByName = driver.findElement(By.name("userid"));

                   System.out.println(eleByName.getTagName());

                   System.out.println(eleByName.getAttribute("title"));

                   //根据css

                   System.out.println("---------3、根据css定位  id---------");

                   WebElement eleByCssId = driver.findElement(By.cssSelector("#userid"));

                   System.out.println(eleByCssId.getTagName());

                   System.out.println(eleByCssId.getAttribute("title"));

                   System.out.println("---------3、根据css定位  class---------");

                   WebElement eleByCssClass = driver.findElement(By.cssSelector(".uid"));

                   System.out.println(eleByCssClass.getTagName());

                   System.out.println(eleByCssClass.getAttribute("title"));

                   //根据tagName 如果有多个tagName,则获取的为第一个

                   System.out.println("---------4、根据tagName定位---------");

                   WebElement eleByTagName = driver.findElement(By.tagName("input"));

                   System.out.println(eleByTagName.getTagName());

                   System.out.println(eleByTagName.getAttribute("title"));

                   //根据className

                   System.out.println("---------5、根据className定位---------");

                   WebElement eleByClassName = driver.findElement(By.className("uid"));

                   System.out.println(eleByClassName.getTagName());

                   System.out.println(eleByClassName.getAttribute("title"));

                   //根据linkText 直接根据 <a>标签显示的内容定位

                   System.out.println("---------6、根据linkText定位---------");

                   WebElement eleByLinkText = driver.findElement(By.linkText("超链接"));

                   System.out.println(eleByLinkText.getTagName());

                   System.out.println(eleByLinkText.getAttribute("href"));

                  

                   //根据partialLinkText 直接根据 <a>标签显示的部分内容定位

                   System.out.println("---------7、根据partialLinkText定位 是linkText的 扩展---------");

                   WebElement eleByPartialLinkText = driver.findElement(By.partialLinkText("链接"));

                   System.out.println(eleByPartialLinkText.getText());

                   System.out.println(eleByPartialLinkText.getTagName());

                   System.out.println(eleByPartialLinkText.getAttribute("href"));

                  

                   //根据xpath定位 用firebug

                 System.out.println("---------8、根据xpath定位---------");

                   WebElement eleByXpath = driver.findElement(By.xpath("/html/body/form/div/input[1]"));

                   System.out.println(eleByXpath.getText());

                   System.out.println(eleByXpath.getTagName());

                   try {

                            Thread.sleep(3000);

                   } catch (InterruptedException e) {

                            // TODO Auto-generated catch block

                            e.printStackTrace();

                   }

                   driver.quit();

         }

以上是关于selenium-webdriver八种定位元素的常用方式的主要内容,如果未能解决你的问题,请参考以下文章

selenium-webdriver的二次封装

selenium对元素的八种定位方式

Selenium:八种元素定位方法

轻松自动化---selenium-webdriver(python)

selenium定位元素的八种方法

selenium定位元素的八种方法