首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Selenium IDE中使用Turbolinks

在Selenium IDE中使用Turbolinks
EN

Stack Overflow用户
提问于 2013-03-18 15:34:59
回答 1查看 156关注 0票数 0

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

打开/

clickAndWait link=Sign in

键入id=session_email any@example.com

然后我会得到一个错误

“找不到errorElement id=session_email。

当我查看页面源代码时,安装了turbolinks的session_email id仍然在那里。我发现了这个页面,http://www.digitalkingdom.org/rlp/tiki-index.php?page=Selenium+And+Javascript,它似乎表明在检测页面是否完全加载时可能存在问题。

有没有办法在不改变测试套件中数百行代码的情况下修复这个问题?如果没有,有没有可靠的selenium方法可以测试turbolinked页面是否完全加载?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-28 08:58:36

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

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

代码语言:javascript
复制
Open /
clickAndWait link=Sign in
type id=session_email any@example.com

则需要将其修改为

代码语言:javascript
复制
Open /
click link=Sign in
waitForElementPresent id=session_email
type id=session_email any@example.com

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

但是,如果测试涉及到javascript弹出,那么您不应该添加waitFor命令。举个例子,如果你有像这样的测试

代码语言:javascript
复制
clickAndWait link=Delete
assertConfirmation   Are you Sure?

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15471780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档