gpt4 book ai didi

java - Selenium 并不总是获取正确的动态生成的链接

转载 作者:行者123 更新时间:2023-11-30 11:41:36 25 4
gpt4 key购买 nike

我当前的环境是使用 Selenium RC 的 Firefox 3.6.28(使用 Selinium 服务器 2)。最终,WebDriver 的东西将迁移到 Selenium 2.0,但我现在需要进行一些测试才能在 Selenium RC 中工作。

我有一个动态生成的表,每行内都有一个“a href”链接。我想点击某一行的链接。然而,问题是有时 Selenium 正确地把它挑出来(测试通过),有时我得到一个错误,说该元素不存在(测试失败):

[testng] com.thoughtworks.selenium.SeleniumException: 错误: 元素 xpath=(//table[@class='results'])/tbody/tr[position()=5]/td/a没有找到

似乎没有任何检测/未能看到元素的模式。

为了查看浏览器在我收到错误时是否真的看到了元素,我有这样的东西:



...
try{
wrapWaitForPageToLoad("10000");
wrapWaitForPageToLoad("10000");
clickAndWait(xpath);
}catch(Exception e) { //loop indefinitely here }

事实证明浏览器看到了元素。我在 Selenium IDE 中测试了 xpath。 xpath 显然是正确的,因为我可以在 Selenium IDE 中使用该 xpath 执行单击命令。

为了防止某些元素未完全加载,我添加了一些值为 10000 的 wrapWaitForPageToLoad()。但是,这似乎对问题没有影响。并且在任何情况下,所有元素似乎都已完全加载,正如上述测试所表明的那样……增加时间也无济于事。

桌面上firebug给我的部分html:
(注意,position()=5 得到 listdata4 因为第一行是表的标题)

<table class="results" cellspacing="0" cellpadding="1" border="0" style="cursor: default;">
<tbody>
<tr id="titles">
<tr class="listdata1" style="">
<tr class="listdata2" style="">
<tr class="listdata3" style="">
<tr class="listdata4" style="">
<td align="center">...</td>
<td>
<a href="/click/this/link">Cake Pictures</a>
</td>

是什么导致了这个奇怪的错误?

最佳答案

你需要修改xpath from

//table[@class='results'])/tbody/tr[position()=5]/td/a

//table[@class='results']/tbody/tr[5]/td[2]/a

关于java - Selenium 并不总是获取正确的动态生成的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12203935/

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