【发布时间】:2011-07-14 14:36:51
【问题描述】:
我正在使用用于 Firefox 的 Selenium IDE 并搜索等待命令。 我的问题是我想测试一个嵌入了外部地图的网站。 此外部地图需要 3-5 秒才能加载。
我的命令:
open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something
【问题讨论】:
标签: selenium selenium-ide
我正在使用用于 Firefox 的 Selenium IDE 并搜索等待命令。 我的问题是我想测试一个嵌入了外部地图的网站。 此外部地图需要 3-5 秒才能加载。
我的命令:
open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something
【问题讨论】:
标签: selenium selenium-ide
使用pause 命令并在目标字段中输入毫秒数。
将速度设置为最快(Actions --> Fastest),否则将不起作用。
【讨论】:
Target 而不是Value。命令 = 暂停,目标 = 1000。
pause() 不起作用!
这会延迟 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 - 睡眠时间(以毫秒为单位)
等待指定的时间(以毫秒为单位)
【讨论】:
您最好的选择可能是 waitForCondition 并编写一个在加载地图时返回 true 的 javascript 函数。
【讨论】:
这将满足您在 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,因为它会使您的测试不可靠
【讨论】:
可以在html格式的ide中直接使用pause命令。
如果使用 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:
【讨论】:
我发现适用于我测试的网站的一个是这个:
等待条件 | selenium.browserbot.getUserWindow().$.active==0 | 20000
克伦达图
【讨论】:
在 Chrome 中,对于“Selenium IDE”,我也在努力让它不会暂停。如果您按以下方式给出,它将暂停:
这将暂停 10 秒。
【讨论】: