Selenium IDE 单击由文本标识的行中的按钮
Selenium IDE Click on a button in a row identified by text
我正在尝试让我的脚本单击与特定文本 (SID) 位于同一行的名为 Enter Response 的按钮。我可以分别找到两者,但似乎无法同时使两者工作。
table 是动态的,所以我使用 SID,找到它所在的行,然后想单击它的响应按钮。 IE。找到文本“123456”并单击在同一行中找到的 'Enter Response'。
我试过了,但我收到一个错误定位器未找到:
//tr/td/a[@class='title-abbr' and text()='123456']/following-sibling::td/a[text()='Enter Response']
Table 行 Headers:
Title/Source/Source ID/SID/Create 日期/(输入回复按钮)/表格类型
<tr>
<td class="t-Report-cell" headers="TITLE_ABBR">this is my title</td>
<td class="t-Report-cell" headers="SOURCE_NAME">source1</td>
<td class="t-Report-cell" headers="SOURCE_NUMBER">142417</td>
<td style="background-color: rgb(13, 13, 13);" class="t-Report-cell" headers="SID_ABBR">
<a href="javascript: void(0);" title="123456" class="title-abbr" style="text-decoration: none; background-color: transparent;">123456</a>
</td>
<td class="t-Report-cell" headers="TRANSACTION_DATE">07/28/2016</td>
<td style="background-color: rgb(13, 13, 13);" class="t-Report-cell" headers="LINK" align="center">
<a style="background-color: rgb(0, 255, 255);" class="response-btn" href="f?p=58117:50:27077013481519::NO::P50_TRIGGER_ID:321860">Enter Response</a>
</td>
<td class="t-Report-cell" headers="FORM_TYPE">Questions</td>
</tr>
如有任何帮助,我们将不胜感激!
如果我没看错,你应该先到达父节点,然后再尝试到达下一个兄弟节点....因为 "a" 元素没有兄弟节点,所以基本上是这样的:
//tr/td/a[@class='title-abbr' and text()='123456']/../following-sibling::td/a[text( )='Enter Response']
您也可以只使用 following-sibling::td[2] 而不是在 xpath 的第二部分中按文本进行选择,但也许您出于某种原因需要它。
顺便说一句:
- 如果元素可以有多个样式 classes,你将不得不使用 contains
- 这同样适用于文本,注意空格等。您应该trim文本或使用包含以避免错误的选择器
我正在尝试让我的脚本单击与特定文本 (SID) 位于同一行的名为 Enter Response 的按钮。我可以分别找到两者,但似乎无法同时使两者工作。
table 是动态的,所以我使用 SID,找到它所在的行,然后想单击它的响应按钮。 IE。找到文本“123456”并单击在同一行中找到的 'Enter Response'。
我试过了,但我收到一个错误定位器未找到: //tr/td/a[@class='title-abbr' and text()='123456']/following-sibling::td/a[text()='Enter Response']
Table 行 Headers: Title/Source/Source ID/SID/Create 日期/(输入回复按钮)/表格类型
<tr>
<td class="t-Report-cell" headers="TITLE_ABBR">this is my title</td>
<td class="t-Report-cell" headers="SOURCE_NAME">source1</td>
<td class="t-Report-cell" headers="SOURCE_NUMBER">142417</td>
<td style="background-color: rgb(13, 13, 13);" class="t-Report-cell" headers="SID_ABBR">
<a href="javascript: void(0);" title="123456" class="title-abbr" style="text-decoration: none; background-color: transparent;">123456</a>
</td>
<td class="t-Report-cell" headers="TRANSACTION_DATE">07/28/2016</td>
<td style="background-color: rgb(13, 13, 13);" class="t-Report-cell" headers="LINK" align="center">
<a style="background-color: rgb(0, 255, 255);" class="response-btn" href="f?p=58117:50:27077013481519::NO::P50_TRIGGER_ID:321860">Enter Response</a>
</td>
<td class="t-Report-cell" headers="FORM_TYPE">Questions</td>
</tr>
如有任何帮助,我们将不胜感激!
如果我没看错,你应该先到达父节点,然后再尝试到达下一个兄弟节点....因为 "a" 元素没有兄弟节点,所以基本上是这样的:
//tr/td/a[@class='title-abbr' and text()='123456']/../following-sibling::td/a[text( )='Enter Response']
您也可以只使用 following-sibling::td[2] 而不是在 xpath 的第二部分中按文本进行选择,但也许您出于某种原因需要它。
顺便说一句:
- 如果元素可以有多个样式 classes,你将不得不使用 contains
- 这同样适用于文本,注意空格等。您应该trim文本或使用包含以避免错误的选择器