使用Turbolinks与Selenium IDE

时间:2013-03-18 07:34:59

标签: selenium-ide turbolinks

当我在我的Ruby on Rails应用程序中没有安装turbolinks gem的情况下运行我的selenium测试时,测试通过了。当我包含turbolinks时,测试失败了。例如,如果测试开始

打开/
clickAndWait link =登录
输入id = session_email any@example.com

然后我会收到错误 “[错误]元素id =找不到session_email。

当我查看页面源时,session_email id仍然安装了turbolinks。我找到了这个页面http://www.digitalkingdom.org/rlp/tiki-index.php?page=Selenium+And+Javascript,这似乎表明检测到页面已经完全加载可能存在问题。

如果不改变测试套件中的数百行,是否可以解决这个问题?如果没有,是否有可靠的硒方法可以测试涡旋链接页面是否已满载?

1 个答案:

答案 0 :(得分:1)

在对github turbolinks-compatability project提供一些帮助之后,我能够对这个问题提供部分答案。

如果正在使用turbolinks gem,那么您需要修改您的selenium测试用例以确保页面确实已加载。例如,如果您的测试中包含以下代码

Open /
clickAndWait link=Sign in
type id=session_email any@example.com

然后需要将其修改为

Open /
click link=Sign in
waitForElementPresent id=session_email
type id=session_email any@example.com

您可以使用许多“waitFor”修饰符,具体取决于您要在下一步测试的页面上的功能。

但是,如果测试涉及弹出javascript,则不应添加waitFor命令。例如,如果你有像

这样的测试
clickAndWait link=Delete
assertConfirmation   Are you Sure?

你不应该修改代码。实际上,在javascript弹出窗口的情况下,添加waitFor测试会挂起执行。

此解决方案涉及对代码进行逐行手动修改。我在Selenium Users组中打开了一个issue,看看是否有更好的方法来处理这个问题。