当前位置: 首页 > 知识库问答 >
问题:

Selenium WebDriver在选择xpath时引发错误

蒋波光
2023-03-14
driver.findElement(By.xpath("//input[@type="+"checkbox"+"]/following-sibling:://td[contains(text(),"+"template"+"]"))

我的HTML是这样的

<tr>
<td class="tablecontent">
<input type="checkbox" value="59781" name="templateIds">
</td>`enter code here`
<td class="tablecontent"> test11 </td>
</tr>

组织。openqa。硒。InvalidSelectorException:给定的选择器//输入[@type=checkbox]/以下同级:://td[contains(text(),template]无效或未生成WebElement。出现以下错误:InvalidSelectorError:无法找到xpath表达式为//input[@type=checkbox]/以下同级的元素://td[contains(text(),template],因为出现以下错误:[Exception…”该表达式不是合法表达式代码:“12”nsresult:“0x805b0033(语法错误)”位置:file:///C:/Users/sanjdash/AppData/Local/Temp/anonymous3529970525380845680webdriver-简介/扩展/fxdriver@googlecode.com/组件/驱动程序组件。js行:5956“]命令持续时间或超时:72毫秒有关此错误的文档,请访问:http://seleniumhq.org/exceptions/invalid_selector_exception.html生成信息:版本:'2.37。0',修订版:'a7c61cbd68657e133ae96672cf995890bad2ee42',时间:'2013-10-18 09:51:02'

共有3个答案

查宜修
2023-03-14
"//input[@type="+"checkbox"+"]/following-sibling:://td[contains(text(),"+"template"+"]"

生成错误的字符串。从python中尝试:

"//input[@type="+"checkbox"+"]/following-sibling:://td[contains(text(),"+"template"+"]"
'//input[@type=checkbox]/following-sibling:://td[contains(text(),template]'

你应该用引号包围复选框和模板

"//input[@type="checkbox"]/following-sibling:://td[contains(text(),"template"]"

"//input[@type='checkbox']/following-sibling:://td[contains(text(),'template']"

使用

"//input[@type="+"'checkbox'"+"]/following-sibling:://td[contains(text(),"+"'template'"+"]"

"//input[@type='{type}']/following-sibling:://td[contains(text(),'{text}']".format(type='checkbox',text='template')
赵河
2023-03-14

您的“包含”函数没有结束括号,需要正确的引用。

如果复选框和模板是字符串,试试这个:

driver.findElement(By.xpath("//input[@type='checkbox']/following-sibling:://td[contains(text(),'template')]"))

如果它们是变量,请尝试以下操作:

driver.findElement(By.xpath("//input[@type='" +checkbox+"']/following-sibling:://td[contains(text(),'"+template+"')]"))
司马祖鹤
2023-03-14

看来你的报价搞砸了。在XPath中使用单引号可以避免这样的问题。

// if template is the text within your XPath
driver.findElement(By.xpath("//input[@type='checkbox']/following-sibling:://td[contains(text(), 'template']"));

// if template is your variable, then it should be
driver.findElement(By.xpath("//input[@type='checkbox']/following-sibling:://td[contains(text(), " + template + "']"));

此外,请仔细阅读错误,它告诉了足够的信息,你已经需要。如您所见,消息中的选择器中没有引号。

给定的选择器//输入[@type=checkbox]/以下同级:://td[contains(text(),template]无效或未生成WebElement。

 类似资料:
  • 问题内容: 我的网站上有一个选择控件。我正在使用页面对象与页面进行交互。如果我这样做(在我的课程下的前两行和我的方法中) 它以空指针失败。我也尝试了没有。 现在,如果我在我的方法中执行此操作,则一切正常,然后选择正确的项目 这是该控件的实际网页摘要(已编辑以保护无辜者) 让我说我可以解决我的问题, 但是 我不明白为什么“ 正常 ”路径无法正常工作。 问题答案: 那是因为该类具有以下构造函数: 见J

  • Tree在选择节点时抛出异常,在backinbean中发送正确节点的值。但例外并不是它从何而来。 日志: 最后是我的背豆

  • 我有一个带有方法的model类,它用@preupdate进行了注释。此方法调用我的方法: 我的实现:

  • 问题内容: 我得到我的iOS应用程序错误。我尝试根据其他类似主题中提到的答案解决问题,但失败了。请查看下面的代码,并为此提供帮助。 谢谢 问题答案: 这样写选择器。 Swift 2.3或更低版本。 迅捷3 注意: 一种建议是面糊方法名称始终以小写而不是大写开头。因此,如果您使用而不是,那就更糟了。

  • 问题内容: 我在selenium测试中有以下xpath语句: 它达到了我想要的,但是我的测试在IE6中非常缓慢。有人知道我将如何做与CSS选择器相同的选择器吗?我想我了解如何执行上述操作,但text()=“ IPODate”部分除外。 以下是我要从中选择的表格示例: ....很多很多行 …还有很多行… 在此示例中,只有一行具有IPODate单元。 问题答案: CSS定位器用于其中包含文本IPODa

  • 问题内容: 我只想自行选择一个名为.date的类 由于某种原因,我无法使它正常工作。如果有人知道我的代码出了什么问题,将不胜感激。 问题答案: 我想写这个问题的规范答案,因为上面的答案有问题。 我们的问题 该 CSS 选择器: 将选择具有 foo 类的任何元素。 您如何在XPath中做到这一点? 尽管XPath比CSS强大,但是 XPath没有CSS类选择器的本机等效项 。但是,有一个解决方案。