我正在使用Firefox的Selenium IDE,并寻找等待命令。
我的问题是,我想测试一个包含外部地图的网站。
这个外部地图需要3-5秒才能加载。
我的命令:
open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something
我正在使用Firefox的Selenium IDE,并寻找等待命令。
我的问题是,我想测试一个包含外部地图的网站。
这个外部地图需要3-5秒才能加载。
我的命令:
open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something
这会延迟5秒钟:
命令:pause
目标:5000
值:
这会延迟3秒钟:
命令:pause
目标:3000
值:
文档:
http://release.seleniumhq.org/selenium-core/1.0/reference.html#pause
如果您使用ant
,我建议您使用以下代码来暂停5秒钟:
<tr>
<td>pause</td>
<td>5000</td>
<td></td>
</tr>
也就是说,target: 5000
和value
为空。正如参考所示:
pause(waitTime)
参数:
- waitTime - 睡眠时间(以毫秒为单位)
等待指定的时间(以毫秒为单位)
你最好的选择可能是使用waitForCondition
,并编写一个javascript函数,在地图加载完成时返回true。
这将在C#(WebDriver/Selenium 2.0)中实现您所需的功能。
var browser = new FirefoxDriver();
var overallTimeout = Timespan.FromSeconds(10);
var sleepCycle = TimeSpan.FromMiliseconds(50);
var wait = new WebDriverWait(new SystemClock(), browser, overallTimeout, sleepCycle);
var hasTimedOut = wait.Until(_ => /* here goes code that looks for the map */);
而且永远不要使用Thread.Sleep,因为它会使你的测试变得不可靠
clickAndWait
之前添加以下代码,以便脚本等待特定链接可见: <tr>
<td>waitForVisible</td>
<td>link=do something</td>
<td></td>
</tr>
我在测试的网站上找到了一个可行的方法:
waitForCondition | selenium.browserbot.getUserWindow().$.active==0 | 20000
Klendathu
在 HTML 格式的 IDE 中,可以直接使用 pause 命令。
如果使用 Java 或 C,可以使用 Thread.sleep(5000)。时间以毫秒为单位。其他语言支持 "sleep 5" 或 time.sleep(5)。您有多种选项来等待一段时间。
这将等待直到您的链接出现,然后您可以单击它。
命令:waitForElementPresent
目标:link=做某事
值:
pause()
为什么不起作用一直让我发疯! - cchana