zoukankan      html  css  js  c++  java
  • Java + selenium 元素定位(5)之By Xpath

            这篇关于Xpath方法的文章和之前那篇CSS的方法一样,使用前,需要先掌握一些Xpath的相关知识。当然,网上也有各种工具可以帮助我们获取到元素的Xpath,但是这并不代表着我们就可以不用了解Xpath的相关知识,毕竟依赖工具永远没有依赖自己来着靠谱。但是我也会介绍一下如果简单快速的获取元素的Xpath。

            我尝试过使用一些文章介绍的快速获取Xpath的工具,但是可能因为这些工具都是依赖于浏览器的扩展工具,更新换代比较快,所以文章介绍的工具我并没有成功找到。我在这里要介绍的方法,不需要使用额外的工具。在之前的元素定位(1)中,我已经介绍过了使用浏览器的开发者工具来查看网页的源码,也获取一些我们想要的元素标签。本章关于Xpath的获取,我们也是基于浏览器的开发者工具。根绝之前的步骤,我们点击知道我们想要获取的元素的代码行。这时,我们将鼠标移动到该行代码上,点击鼠标右键,选择Copy  -->  Copy Xpath。这样我们就获取到该元素的Xpath表达式了。我们只有到任何输入框中选择粘贴就可以看到Xpath表达式了。

           例如,我们那百度首页举例。还是首页的输入框,这波操作之后,我们可以获取到输入框的Xpath表达式://*[@id="kw"]。所以我们可以直接使用By.Xpath接口方法:driver.findElement(By.xpath(".//*[@id='kw']")).sendKeys("自动化")。完整代码展示如下

    import java.util.concurrent.TimeUnit;
     
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
     
    public class FirstScript {
     
        public static void main(String[] args) {
            
             System.setProperty("webdriver.chrome.driver", ".\Tools\chromedriver.exe");  
             
             WebDriver driver = new ChromeDriver();  
                
             driver.manage().window().maximize();  
                 
             driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);     
            
             driver.get("https://www.baidu.com");  
             
             driver.findElement(By.xpath(".//*[@id='kw']")).sendKeys("自动化");
             driver.findElement(By.xpath(".//*[@id='su']")).click();
               
             //关闭并退出浏览器  
             driver.quit();  
        }
     
    }

           当然,机器获取的Xpath其实都是很死板的,而我们在现实的运用中,因为不同的人的编写习惯不同,其实死板的机器是很容易出问题的。所以我们最好还是靠自己来识别比较好。

  • 相关阅读:
    java.io.Serializable浅析
    SSH和SSM的区别
    [转]github详细教程
    GITHUB的使用
    常用端口-小结
    DNS的解析原理
    windows快捷键-小结
    ip地址0.0.0.0是什么意思
    windows插件框架下载地址
    redis和mongodb
  • 原文地址:https://www.cnblogs.com/zhuxiangru/p/9614987.html
Copyright © 2011-2022 走看看