Java 在Selenium 3中使用xpath定位元素时出错
我试图使用Java 在Selenium 3中使用xpath定位元素时出错,java,selenium,xpath,selenium-webdriver,Java,Selenium,Xpath,Selenium Webdriver,我试图使用Xpath单击一个链接(看起来像一个选项卡按钮),但出现了一个错误 这是html代码段: 建议方案 做事总有更好的方法。你只能建议我们改进。 你没有提供任何帮助来解决你的问题,我给你-分,因为现在是猜谜游戏 我可以说: 您没有提供页面的完整html,只有按钮,它没有帮助。因为您使用的是Chrome,所以不要使用firepath,而是以下功能: RMB(打开按钮)->检查->突出显示部分RMB->复制->复制Xpath 并检查xpath是否相同 如果它是相同的,它可能是由您使用的静
Xpath
单击一个链接(看起来像一个选项卡按钮),但出现了一个错误
这是html
代码段:
建议方案
做事总有更好的方法。你只能建议我们改进。
你没有提供任何帮助来解决你的问题,我给你-分,因为现在是猜谜游戏
我可以说:
如前所述,这是我的猜测,因为你没有提供任何信息你没有提供任何东西来帮助你解决问题,我会给你-分,因为现在是猜测游戏 我可以说:
如前所述,我猜您没有提供任何信息,因此您可能没有等待页面完全加载。 在尝试单击页面之前,请尝试等待页面完全加载。如果xpath是正确的,那么它必须是正确的 要进行测试,请使用Chrome进入网页。按F12打开开发人员的工具。转到console选项卡并键入以下内容:
x(“/html/body/div[5]/div[2]/div”)
检查结果。如果它返回正确的元素,那么您就拥有了正确的xpath。如果没有,请尝试以下操作:
//div[@id='tile-8']
//div[@id='tile-8']/span[text()='Suggestion Scheme']
//span[text()=“建议方案”]
如果选项1起作用,只需使用
By.id(“tile-8”)
而不是By.xpath()
您可能没有等待页面完全加载。
在尝试单击页面之前,请尝试等待页面完全加载。如果xpath是正确的,那么它必须是正确的
要进行测试,请使用Chrome进入网页。按F12打开开发人员的工具。转到console选项卡并键入以下内容:x(“/html/body/div[5]/div[2]/div”)
检查结果。如果它返回正确的元素,那么您就拥有了正确的xpath。如果没有,请尝试以下操作:
//div[@id='tile-8']
//div[@id='tile-8']/span[text()='Suggestion Scheme']
//span[text()=“建议方案”]
如果选项1有效,只需使用
By.id(“tile-8”)
而不是By.xpath()
我可以看出您一直在使用firepath自动生成的xpath。我想是的
大多数情况下,这些Xpath都存在浏览器兼容性问题。开始编写动态Xpath,在脚本中使用该Xpath之前,通过在Firebug或Chrome developer选项中检查Xpath,确保Xpath是正确的
在chrome中导航到开发者选项的步骤:ctrl+F
并粘贴您编写的Xpath。如果Xpath正确,您将看到匹配的节点结果以黄色突出显示如果您有任何问题,请告诉我。我可以看出您一直在使用firepath自动生成的Xpath。我想是的 大多数情况下,这些Xpath都存在浏览器兼容性问题。开始编写动态Xpath,在脚本中使用该Xpath之前,通过在Firebug或Chrome developer选项中检查Xpath,确保Xpath是正确的 在chrome中导航到开发者选项的步骤:
ctrl+F
并粘贴您编写的Xpath。如果Xpath正确,您将看到匹配的节点结果以黄色突出显示如果您有任何问题,请告诉我。您可以在浏览器上安装“ChroPath”生成Xpath 通过在浏览器上安装“ChroPath”,可以生成Xpath 感谢您的帮助,因为我是selenium automation的新手。请为提到的按钮共享
HTML
代码您正在使用位置xpath
,这不会更稳定,为了获得更好的解决方案,您需要共享相关的HTML。如果有帮助,我可以在这里共享HTML吗???@AmitPandey您可以在编辑您的问题后共享HTML。由于我是selenium automation的新手,请提供帮助。共享所提到的按钮的HTML
代码您正在使用位置xpath
,这不会更多稳定,为了更好的解决方案,你需要共享相关的HTML。如果有帮助的话,我可以在这里共享HTML吗???@AmitPandey你可以在编辑你的问题后共享HTML。HTML代码太长,无法粘贴到这里,这很好
((JavascriptExecutor)driver).executeScript("scroll(0,250)"); //250 is value of page scrolled, depends how much