未找到硒元素

时间:2009-05-23 22:23:35

标签: php selenium

我正在用PHP编写Selenium测试来检查Firefox中Web应用程序的性能。我想用它作为基线来比较不同的性能增强(升级JQuery,PHP 5.3等)。 Web应用程序是非常强大的AJAX,到目前为止我只遇到了一个问题。

我有一个AJAX调用,可以将内容加载到现有的div中。要测试呼叫是否完成,我使用以下代码行:

$selenium->waitForCondition('$(\'div[id="divId"]\').height() > 100', $timeout);

这是按照我的预期工作,但是当我尝试输入加载到div中的任何输入时,selenium会抛出错误“Element input [@ id =”inputId“] not found”。

我已经验证输入的id是正确的,我已经尝试了在div中加载的其他输入元素,但没有一个工作。我还试图添加一个睡眠(30),这样我就可以确定元素是在DOM和屏幕上,但是它再次没有区别。

我真的陷入了这一点,在我解决这个问题之前无法继续前进。非常感谢任何帮助。

谢谢, James Armes

1 个答案:

答案 0 :(得分:4)

我会看一些事情:

  1. 在加载项目之前,请确保您检查的条件不正确。例如,检查height似乎是可疑的 - 测试div中是否存在任何孩子会不会更好?

  2. 根据您编写选择器的方式,Selenium可能会认为input[@id='inputId']是选择器的实际标识符(而不仅仅是inputId)。确保不是这种情况。尝试使用inputId,这应该足够了,因为它是一个标识符。

  3. 硒可能很挑剔。尝试不同的浏览器,看看你是否得到不同的结果。如果是这样,它可能代表Selenium不能很好地覆盖的区域。虽然这些通常很少而且很远,但这是可能的。但是,在确定是这种情况之前,我们需要查看更多代码。