Selenium waitForCondition无法按预期工作

时间:2012-08-28 07:17:52

标签: selenium

我的代码是这样的,在触发ajax请求之前,表行的不透明度为0.5,一旦ajax请求完成,不透明度为1

我在waitForCondition方法中使用表行的不透明度来检查ajax请求是否已完成加载。代码不起作用,每次都超时。我已经在waitForCondition之前和之后检查了不透明度的值,并且返回的值是正确的,但它仍然是超时的。

我使用的代码就像这样

<tr>
  <td>echo</td>
  <td>javascript{selenium.browserbot.getCurrentWindow().document.getElementsByTagName('tbody')[0].getElementsByTagName('tr')[0].style.opacity}</td>
  <td></td>
</tr>
<tr>
  <td>waitForCondition</td>
  <td>javascript{selenium.browserbot.getCurrentWindow().document.getElementsByTagName('tbody')[0].getElementsByTagName('tr')[0].style.opacity == 1}</td>
  <td>30000</td>
</tr>
<tr>
  <td>echo</td>
  <td>javascript{selenium.browserbot.getCurrentWindow().document.getElementsByTagName('tbody')[0].getElementsByTagName('tr')[0].style.opacity}</td>
  <td></td>
</tr>

1 个答案:

答案 0 :(得分:0)

我已经找到了解决问题的方法。

我不需要在waitForCondition中使用javascript {}构造,因为这个方法隐含地认为我们给这个方法提供了一个javascript。

所以,正确的表达是:

<tr>
  <td>waitForCondition</td>
  <td>selenium.browserbot.getCurrentWindow().document.getElementsByTagName('tbody')[0].getElementsByTagName('tr')[0].style.opacity == 1</td>
  <td>30000</td>
</tr>