Selenium元素未找到,即使Selenium填充了ID。

6
我正在使用Selenium IDE Firefox插件创建一些测试用例。我点击录制按钮来记录操作步骤。当完成后,我停止录制并运行测试用例以查看结果如何。在HTML表单中的一个特定元素,Selenium在录制过程中将其识别为id=my_id_1 ,但当我运行测试用例时,它会说找不到该元素id=my_id_1
当Selenium IDE中检测到ID时,为什么会找不到它呢?我该如何解决这个问题?我已经尝试使用//tr[4]/td[3]/a来进行标识。使用这种方法(同时也使用ID),当我在IDE中点击查找按钮时,网页上对应的项目会被黄色高亮显示。然而,测试用例会失败,提示找不到元素。
谢谢,Monte

你确定命令在页面加载表格之前没有被执行吗? - A.J
4个回答

8
尝试在问题命令之前暂停一下,看看是否已经完全加载完成,然后Selenium再尝试查找该元素。如果这样可以解决问题,您可以将暂停替换为更健壮的等待条件。

非常感谢。在问题命令之前,我执行了ClickAndWait,这解决了问题。 - Monte Chan
1
+1,我遇到了同样的问题,加入一个暂停解决了我的问题。 - Tim

0

有时候在执行命令之前,你可能会被重定向到不同的页面,导致出现元素未找到的错误。这时你可以在执行命令之前加上暂停,或者尝试通过名称、值或XPath来定位元素,而不是ID。


0

可能是每次都在创建新的ID。因此,您可以使用类似我下面使用的正则表达式。

//form[@id='adminLogin']/div/div[4]/input

试一下。这对我有用。


-1

在IDE的慢速模式下运行您的测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接