testing - 如何使用 XPATH 访问 TR 内的链接

标签 testing selenium xpath selenium-webdriver

此 HTML 代码具有目标菜单,您需要选择一个目标。这些目标之一是继续进程的任何目标。

<tr id="mainForm:nav-panel-tab-set:0:trigger-selectTable:0" class=" iceRowSelMouseOver" tabindex="0" onmouseover="this.className=' iceRowSelMouseOver';" onmouseout="Ice.enableTxtSelection(document.body); this.className='iceDatTblRow1 selectable-rowRow1 iceRowSel'" onmousedown="return Ice.preventTextSelection(event);" ondblclick="Ice.registerDblClick(this);" onclick="Ice.registerClick(this,'mainForm:nav-panel-tab-set:0:trigger-selectTableclick_row','mainForm:nav-panel-tab-set:0:trigger-selectTableclick_count','0','mainForm',200,true,event,false,'mainForm:nav-panel-tab-set:0:trigger-selectTablesel_rows','');">
<td class="iceDatTblCol1 selectable-rowCol1" scope="row">
<a id="mainForm:nav-panel-tab-set:0:trigger-selectTable_idx_0" class="iceHdnLnk" onfocus="return Ice.tblRowFocus(this, false);" onblur="return Ice.tblRowBlur(this);" href="#">
<img alt="" src="/ice/xmlhttp/css/xp/css-images/spacer.gif"/>
</a>
<span id="mainForm:nav-panel-tab-set:0:trigger-selectTable:0:j_idt1417" class="iceOutTxt">ANY TARGET</span>
</td>
<td class="iceDatTblCol2 selectable-rowCol2">
<span id="mainForm:nav-panel-tab-set:0:trigger-selectTable:0:j_idt1419" class="iceOutTxt select-icon">»</span>
</td>
</tr>

如何使用 XPATH 到达要单击 >> 添加的任何目标?

额外信息:

前面的代码是子窗口添加目标。主窗口代码是:

<tr class="icePnlGrdRow1 settings-tableRow1">
<td id="mainForm:nav-panel-tab-set:0:j_idt1305-2-0" class="icePnlGrdCol1 settings-tableCol1">
<table id="mainForm:nav-panel-tab-set:0:j_idt1326" class="icePnlGrd settingsLabel">
<tbody>
<tr class="icePnlGrdRow1 settingsLabelRow1">
<td id="mainForm:nav-panel-tab-set:0:j_idt1326-0-0" class="icePnlGrdCol1 settingsLabelCol1">
<span id="mainForm:nav-panel-tab-set:0:j_idt1327" class="iceOutTxt label">Target</span>
</td>
</tr>
<tr class="icePnlGrdRow2 settingsLabelRow2">
<td id="mainForm:nav-panel-tab-set:0:j_idt1326-1-0" class="icePnlGrdCol1 settingsLabelCol1">
<span id="mainForm:nav-panel-tab-set:0:j_idt1328" class="iceOutTxt sidenote">Target or group</span>
</td>
</tr>
</tbody>
</table>
</td>
<td id="mainForm:nav-panel-tab-set:0:j_idt1305-2-1" class="icePnlGrdCol2 settings-tableCol2">
<table id="mainForm:nav-panel-tab-set:0:j_idt1329" class="icePnlGrd search">
<tbody>
<tr class="icePnlGrdRow1 searchRow1">
<td id="mainForm:nav-panel-tab-set:0:j_idt1329-0-0" class="icePnlGrdCol1 searchCol1">
<span id="mainForm:nav-panel-tab-set:0:j_idt1330" class="iceOutTxt"/>
</td>
<td id="mainForm:nav-panel-tab-set:0:j_idt1329-0-1" class="icePnlGrdCol2 searchCol2">
<input id="mainForm:nav-panel-tab-set:0:j_idt1331" class="iceCmdBtn" type="image" src="/ice/img/search-icon.png" onfocus="setFocus(this.id);" onclick="iceSubmitPartial(form, this, event);return false;" onblur="setFocus('');" name="mainForm:nav-panel-tab-set:0:j_idt1331"/>
</td>
</tr>
</tbody>
</table>
</td>
</tr>

我用ID点击目标打开子窗口

//*[@id='mainForm:nav-panel-tab-set:0:j_idt1331']

但是,无论是我使用了您提到的解决方案,我都没有收到任何将任何目标添加到我的主窗口的响应。

最佳答案

您可以到达包含“ANY TARGET”的span:

//span[text() = "ANY TARGET"]

您可以扩展它以达到 td 中包含“>>”的 span,紧跟在包含“ANY TARGET”的 td 之后:

//td[span[text() = "ANY TARGET"]]/following-sibling::td[1]/span[text() = ">>"]

关于testing - 如何使用 XPATH 访问 TR 内的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25121038/

相关文章:

xpath - 我正在尝试使用具有两个部分的字符串的XPath函数contains(),但是它抛出了无效的xpath错误

c# - 生产代码中的 NUnit 断言

android - Jacoco for Android Instrumentation Test 使用 AndroidJunit

python - 使用 Selenium 和 ng-file-upload 自动上传文件

选择单选按钮的 Selenium 代码

xml - 如何在xQuery中获取没有 child 的节点?

c# - 无法修复 : Error CS1029 'Generation error: Sequence contains no elements'

ruby-on-rails - 将自定义 shoulda 匹配器添加到 TestCase

performance - 如何测试 Prolog 程序的性能?

ruby-on-rails - Rails、Cucumber、Capybara、Selenium、Pow、域、子域和 javascript