Selenium IDE - 等待5秒的命令

97

我正在使用Firefox的Selenium IDE,并寻找等待命令。

我的问题是,我想测试一个包含外部地图的网站。

这个外部地图需要3-5秒才能加载。

我的命令:

open /Page/mysite.html
//Wait Command? (5 seconds)
ClickAndWait link=do something
11个回答

116

使用暂停命令并在目标字段中输入毫秒数。

将速度设置为最快(操作--> 最快),否则不会生效。


谢谢!我已经插入了命令,但Selenium没有暂停。命令=暂停,值=10000。 - LaPhi
58
使用“Target”代替“Value”。命令=暂停,目标=1000。 - khairul
1
@Khairul,很高兴你添加了那个评论,因为pause()为什么不起作用一直让我发疯! - cchana
速度对暂停命令没有影响,正如@Khairul所说的那样:将其放入目标中。 - Mendhak
当您在运行测试套件时,在测试用例结束时暂停,它将无法工作。 - Alfonso Fernandez-Ocampo

93

2
所以,将5000设置为5秒。 - Ripon Al Wasim
1
真是疯狂,他们居然把目标设为要等待的毫秒数。太棒了。谢谢你发布这个,我甚至没有尝试在目标中输入值。 - John Z

6

如果您使用ant,我建议您使用以下代码来暂停5秒钟:

<tr>
    <td>pause</td>
    <td>5000</td>
    <td></td>
</tr>

也就是说,target: 5000value为空。正如参考所示:

pause(waitTime)

参数:

  • waitTime - 睡眠时间(以毫秒为单位)

等待指定的时间(以毫秒为单位)


4

你最好的选择可能是使用waitForCondition,并编写一个javascript函数,在地图加载完成时返回true。


谢谢您的评论!但是现在有没有OTB的方法来等待x秒钟? - LaPhi
1
不,没有直接等待x秒的方法。请参阅支持的命令完整列表 - highlycaffeinated
2
暂停 x000 秒将等待 x 秒。 - Thunder Rabbit

2

如果您使用Chrome扩展程序,可以在“Target”中设置超时时间。这对我很有帮助。

在此输入图片描述


1

这将在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,因为它会使你的测试变得不可靠


Selenium 2中有更好的选择。 - craastad

0
在命令clickAndWait之前添加以下代码,以便脚本等待特定链接可见:
   <tr>
        <td>waitForVisible</td>
        <td>link=do something</td>
        <td></td>
    </tr>

使用等待命令而不是暂停命令的做法大多数情况下更有效和更稳定,特别是在编程方面。

0

我在测试的网站上找到了一个可行的方法:

waitForCondition | selenium.browserbot.getUserWindow().$.active==0 | 20000

Klendathu


0

在 HTML 格式的 IDE 中,可以直接使用 pause 命令。

如果使用 Java 或 C,可以使用 Thread.sleep(5000)。时间以毫秒为单位。其他语言支持 "sleep 5" 或 time.sleep(5)。您有多种选项来等待一段时间。


2
Thread.Sleep永远不是一个好主意,这就是为什么Selenium提供了等待原语。如果您使用它们,您可以指定更高的超时值,这使得测试更可靠,而不会减慢它们的速度,因为条件可以根据需要进行评估,例如每50毫秒。 - Pawel Pabich
我的回复在thread.sleep线程休眠方面只是为了回答如何在IDE中使其等待的问题。因为当你从HTML转换到Java或C时,暂停会被翻译成thread.sleep。 - rattlerbred

0

这将等待直到您的链接出现,然后您可以单击它。

命令:waitForElementPresent 目标:link=做某事 值:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接