我正在使用Selenium IDE for Firefox并搜索wait命令。我的问题是我想测试一个嵌入了外部地图的网站。此外部地图需要3-5秒才能加载。
我的命令:
open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something
使用pause命令。将速度设置为最快(操作 - >最快),否则无效。
在Chrome中,对于“Selenium IDE”,我也在苦苦挣扎,它不会停顿。它会暂停,如果你给出如下:
这将暂停10秒钟。
这将延迟5秒:
命令:暂停 目标:5000 值:
这将延迟3秒钟:
命令:暂停 目标: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
空着。如参考文献所示:
暂停(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,因为它会使您的测试不可靠
pause命令可以直接在html格式的ide中使用。
如果使用java或C,您可以使用Thread.sleep(5000)。时间以毫秒为单位。其他语言支持“sleep 5”或time.sleep(5)。你有多个选项可以等待一段时间。
在命令clickAndWait
之前添加以下代码,以便脚本将等到特定链接可见:
<tr>
<td>waitForVisible</td>
<td>link=do something</td>
<td></td>
</tr>
使用等待命令而不是暂停的做法大多数时候更有效且更稳定。
这将等到您的链接出现,然后您可以单击它。
Command: waitForElementPresent
Target: link=do something
Value:
我发现的一个我测试的网站就是这个:
waitForCondition | selenium.browserbot.getUserWindow()。$。active == 0 | 20000
Klendathu