这篇关于Xpath方法的文章和以前那篇CSS的方法同样,使用前,须要先掌握一些Xpath的相关知识。固然,网上也有各类工具能够帮助咱们获取到元素的Xpath,可是这并不表明着咱们就能够不用了解Xpath的相关知识,毕竟依赖工具永远没有依赖本身来着靠谱。可是我也会介绍一下若是简单快速的获取元素的Xpath。java
我尝试过使用一些文章介绍的快速获取Xpath的工具,可是可能由于这些工具都是依赖于浏览器的扩展工具,更新换代比较快,因此文章介绍的工具我并无成功找到。我在这里要介绍的方法,不须要使用额外的工具。在以前的元素定位(1)中,我已经介绍过了使用浏览器的开发者工具来查看网页的源码,也获取一些咱们想要的元素标签。本章关于Xpath的获取,咱们也是基于浏览器的开发者工具。根绝以前的步骤,咱们点击知道咱们想要获取的元素的代码行。这时,咱们将鼠标移动到该行代码上,点击鼠标右键,选择Copy --> Copy Xpath。这样咱们就获取到该元素的Xpath表达式了。咱们只有到任何输入框中选择粘贴就能够看到Xpath表达式了。web
例如,咱们那百度首页举例。仍是首页的输入框,这波操做以后,咱们能够获取到输入框的Xpath表达式://*[@id="kw"]。因此咱们能够直接使用By.Xpath接口方法:driver.findElement(By.xpath(".//*[@id='kw']")).sendKeys("自动化")。完整代码展现以下chrome
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其实都是很死板的,而咱们在现实的运用中,由于不一样的人的编写习惯不一样,其实死板的机器是很容易出问题的。因此咱们最好仍是靠本身来识别比较好。浏览器