Java 验证seleniumxpath语法
我正在用java编写一个方法来等待xpath。但是,如果等待已过,我不想抛出错误。我想返回null(或者元素,如果它确实找到它)。我可以使用try/catch,如果我捕获到一个表示“未找到预期元素”之类的异常,我可以返回null;但我想先验证xpath的语法。例如,这里有一个无效的xpath:Java 验证seleniumxpath语法,java,eclipse,selenium,xpath,Java,Eclipse,Selenium,Xpath,我正在用java编写一个方法来等待xpath。但是,如果等待已过,我不想抛出错误。我想返回null(或者元素,如果它确实找到它)。我可以使用try/catch,如果我捕获到一个表示“未找到预期元素”之类的异常,我可以返回null;但我想先验证xpath的语法。例如,这里有一个无效的xpath:“//span[contains(@id,'thiswillneverbeford'),原因很明显是没有关闭,“” 更复杂的是,我们已经编写了一些方法,这些方法只返回未找到的预期元素的消息,而不管该元素是否
“//span[contains(@id,'thiswillneverbeford'),原因很明显是没有关闭,“
”
更复杂的是,我们已经编写了一些方法,这些方法只返回未找到的预期元素的消息,而不管该元素是否为有效语法。因此,我无法判断它是否为错误的xpath
我可以自己编写等待,但我不想像通常那样只传递xpath(比如字符串xpath),有时我想要一个列表(字符串…xpath)。我们有一个方法,我真的看不到它会等待任何给定的xpath列表,但我不确定如何自己编写一个
因此,我想我是在问,是否有方法验证selenium xpath的语法是否正确,或者是否有方法等待多个xpath中的任何一个?我可以捕获错误并检查它们,看看哪些是正确的,哪些应该抛出。好吧,您可以尝试在浏览器控制台上执行xpath并验证输出。当然,我们需要打开要验证xpath的页。可以使用
$x()
执行
$x()
是XPath实用程序函数。您可以检查Chrome的命令行引用
用法:
$x("//span[contains(@id,'ThisWillNEverBeFound" for obvious reasons of no closing ' nor ]")
再想想,也许这并不像我原来想的那么糟糕。在我看来,你有几个选择
在中有一种验证XPath语法的简单方法。在我看来,您不想这样做。您不应该在执行过程中评估XPath是否有效。传入XPath的人应该在传递XPath之前就这样做。我会尝试获取元素,如果找不到,则将XPath写入日志。当您找到日志中的错误,您可以查看XPath是否是问题所在,如果是问题所在,请返回并修复。我理解您的担忧,但它不会提醒用户XPath无效的事实吗?我考虑了更多,并改变了主意……有点。:)我添加了一些选择,我会考虑。好的,让我来看看。谢谢。我有很多的XPath在控制台上工作,但是没有被Selk发现。