Selenium驱动程序按钮Xpath

Selenium驱动程序按钮Xpath,selenium,xpath,selenium-webdriver,Selenium,Xpath,Selenium Webdriver,如何编写命令来单击按钮的xpath Xpath是 html/body/div[1]/div[1]/form/div/div[1]/div/div/a[1]/按钮 是吗 driver.findElement(By.xpath("html/body/div[1]/div[1]/form/div/div[1]/div/div/a[1]/button")).click(); 以这种方式使用XPath“简单”,但非常脆弱。您最好以不同的方式获取元素,例如通过CSS选择器“button.search bu

如何编写命令来单击按钮的xpath

Xpath是

html/body/div[1]/div[1]/form/div/div[1]/div/div/a[1]/按钮

是吗

driver.findElement(By.xpath("html/body/div[1]/div[1]/form/div/div[1]/div/div/a[1]/button")).click();

以这种方式使用XPath“简单”,但非常脆弱。您最好以不同的方式获取元素,例如通过CSS选择器“button.search button”


在线了解更多有关CSS选择器的信息。这里有一个很好的参考指南。网上有很多教程,但这里有一个很好的开始。

你发布的代码有什么问题?它有用吗?如果没有,它与您期望的有什么不同?您是否有任何错误?可能重复的?您可以共享您正在使用的页面的实际HTML,或者至少共享按钮的HMTL吗?@TomTrumper是的,刚刚添加了它。请将页面相关部分的HTML作为文本发布。链接图像最终将不再可用,并使此问题变得不那么有用。非常感谢Jeff,查看您现在发布的链接!我添加了另一个基本教程的链接。参考资料很好,但如果你不知道如何使用它,它就没有那么有用了。试试我链接的教程/指南,或者网上还有更多。我一直在使用CSS选择器,我发现它们比XPath更容易使用。XPath能做的事情很少,CSS选择器做不到。XPath通常速度较慢,并且取决于您如何构建它们,它们更脆弱。您所说的更脆弱是什么意思?就像是更难搞乱代码一样?再次感谢你们!我说的更脆弱是指更容易破碎。当您使用从html开始的XPath时,如果该元素链中的任何内容发生更改,XPath将不再工作。相反,请关注如何仅查找元素本身具有属性的元素。这将防止页面其他部分的更改导致损坏,并使您的测试更加健壮。在这种特定情况下,如果具有class
search.BUTTON
按钮元素在页面上是唯一的,然后,我提供的CSS选择器将找到该按钮,没有其他元素,并且不会受到页面其余部分的任何更改的影响。
driver.findElement(By.cssSelector("button.search-button")).click();