gpt4 book ai didi

java - Selenium:动态查找 CSS 选择器

转载 作者:行者123 更新时间:2023-11-29 05:13:44 25 4
gpt4 key购买 nike

我是 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>

我需要选择其中一个 channel 进行测试,但问题是我无法直接引用 CSS 或 XPath,因为 tbody 和 channel 列表都会根据特定标准发生变化。我将如何使用 channelId 或跨度文本来选择正确的选项?以下是对第四个选项的直接 CSS 引用。

WebElement channelBtn = driver.findElement(By.cssSelector("#selectChannelForm > tbody:nth-child(2) > tr > td > ul > li:nth-child(4) > a"));

是否可以在这些语句中添加一些逻辑?或者选择 nth-child 的其他方法?

最佳答案

您可以使用这样的 xpath 来查找与您要查找的 channel 的链接:

//a[@href='selectChannel.php?selectedChannelId=108']

然后,只需将 108 替换为您需要的 channel 号即可。

关于java - Selenium:动态查找 CSS 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27335505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com