我有一个网页,当有人在文本框中输入整数时,会从我的数据库中提取一些数据。数据最终出现在一些文本输入控件中。直截了当。发射ajax的硒是:
<tr>
<td>fireEvent</td>
<td>ctl00_ContentPlaceHolder1_Wiz1_Control1_TextBox1</td>
<td>blur</td>
</tr>
在模糊事件之后,页面上有6个输入,现在有文本。我想在输入中等待文本出现并声明它们存在。有效的方法是什么?
我试过了:
waitForExpression
($('...').val() != ''
但可疑
这是有效的,因为
jquery,即使加载了jquery
在页面上);也尝试了xpath,但这不起作用waitForText
(定位器,模式),这似乎是最明显的一个,但它确实不起作用,我怀疑因为字段是输入我需要一个不同的方法,因为我要查询的元素是input
控件吗?
答案 0 :(得分:1)
解决方案(由Selenium google群组的用户提供)是使用 waitForValue 而不是waitForText。一方面,这可能更容易弄清楚。另一方面,我可以更多地了解我正在测试的DOM对象。
<tr>
<td>waitForValue</td>
<td>ctl00_ContentPlaceHolder1_TheTextBox</td>
<td>regexp:.+</td>
</tr>
答案 1 :(得分:0)
我会这样做;这将等待所有TextBox中的值最多60秒..当所有TextBox中都有一个值时,你检查它们等,然后跳出循环。否则它会在60秒后失败。
for (int second = 0;; second++) {
if (second >= 60) fail("timeout");
try {
if (selenium.getValue("TextBox1") != "" && selenium.getValue("TextBox2") !="" ))
{ Your Logic here..
break;
}
} catch (Exception e) {}
Thread.sleep(1000);
}