1
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>

org.openqa.selenium.InvalidSelectorException: 指定されたセレクター //input[@type=checkbox]/following-sibling:://td[contains(text(),template] は無効であるか、WebElement になりません。次のエラーが発生しました: InvalidSelectorError: Unable to find an element with xpath expression //input[@type=checkbox]/following-sibling:://td[contains(text(),template] 次のエラーのため: [Exception ... "式は正当な式ではありません。" コード: "12" nsresult: "0x805b0033 (SyntaxError)" 場所: "file:///C:/Users/sanjdash/AppData/Local/Temp/anonymous3529970525380845680webdriver-profile /extensions/fxdriver@googlecode.com/components/driver_component.js Line: 5956"] コマンドの実行時間またはタイムアウト: 72 ミリ秒 このエラーに関するドキュメントについては、次のサイトを参照してください。 http://seleniumhq.org/exceptions/invalid_selector_exception.htmlビルド情報: バージョン: '2.37.0'、リビジョン: 'a7c61cbd68657e133ae96672cf995890bad2ee42'、時間: '2013-10-18 09:51:02'

4

3 に答える 3

5

引用符を台無しにしたようです。このような問題を回避するには、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 + "']"));

また、エラーを注意深く読んでください。既に必要な情報が十分に記載されています。ご覧のとおり、メッセージのセレクターには引用符がありません。

指定されたセレクタ //input[@type=checkbox]/following-sibling:://td[contains(text(),template] は無効であるか、WebElement になりません。

于 2013-10-30T22:02:43.850 に答える
2

「含む」関数には閉じ括弧がなく、正しい引用符が必要です。

CHECKBOX と TEMPLATE が文字列の場合は、これを試してください。

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+"')]"))
于 2015-09-24T14:22:17.650 に答える
0
"//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')
于 2014-05-14T23:39:15.663 に答える