【发布时间】:2015-02-04 18:44:43
【问题描述】:
我是 selenium 的新手,我正在为现有的网络应用程序编写测试。我正在尝试从动态生成的列表中选择一个选项。以下 HTML 是列表的示例:
<table id="selectChannelForm">
<tbody id=""></tbody>
<tbody id="">
<tr rowtype="container">
<td colspan="3" class="second">
<ul>
<li>
<a href="selectChannel.php?selectedChannelId=103">
<span>Sales Channel</span>
</a>
</li>
<li>
<a href="selectChannel.php?selectedChannelId=108">
<span>Demo channel</span>
</a>
</li>
<li>
<a href="selectChannel.php?selectedChannelId=112">
<span>Finance Channel</span>
</a>
</li>
<li>
<a href="selectChannel.php?selectedChannelId=121">
<span>HR Channel</span>
</a>
</li>
<li>
<a href="selectChannel.php?selectedChannelId=156">
<span>Management Channel</span>
</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
我需要选择其中一个频道进行测试,但问题是我无法直接引用 CSS 或 XPath,因为 tbody 和频道列表都会根据特定标准发生变化。我将如何使用 channelId 或 span 文本来选择正确的选项?以下是对第四个选项的直接 CSS 引用。
WebElement channelBtn = driver.findElement(By.cssSelector("#selectChannelForm > tbody:nth-child(2) > tr > td > ul > li:nth-child(4) > a"));
是否有可能在这些陈述中加入一些逻辑?或者其他选择nth-child的方法?
【问题讨论】: