【发布时间】:2012-03-28 23:54:47
【问题描述】:
我们的一位开发人员想在他的装有 IE 9 的 Windows 7 PC 上运行我的数据加载框架,但是当他尝试时,它立即失败,因为它找不到我们对其执行操作的第一个元素(在这种情况下,用户名字段)。
我从来没有遇到过这个问题,因为 Watir 非常擅长等待页面完成加载后再继续。我可以从我的一台 PC 上运行相同的代码,毫无问题地访问他的开发机器,但是当他在本地运行我的框架和应用程序时,Watir 似乎并没有等待页面完成加载(或者他的方式机器服务页面正在欺骗它)。
他正在运行 Ruby 1.8.7 和 Watir 1.9.1
有什么想法吗?
我不记得 Watir 轮询以确认页面加载完成的是什么 - 如果您这样做了,请告诉我,这可能是我们在 Dev PC 上跟进的提示。
谢谢!
-蒂芙尼
添加更多细节:
我们的 QA 站点不公开,但我们的生产站点是公开的,因为我首先点击的是登录屏幕....
这是失败的代码:
ie.text_field(:name, 'j_username').set(producer)
我们得到的错误是,当开发人员尝试从他也在运行被测应用的本地机器上运行我的测试时,页面上不存在该元素。
这不会发生在任何其他 PC 上(他一直在他的旧机器上这样做)。 Watir 没有等待页面加载的地方发生了一些奇怪的事情——这就是为什么我想知道 Watir 轮询什么来确保页面已加载。我可以添加一个解决方法以确保在测试开始之前元素存在,但我真的不想为一台开发机器这样做。
【问题讨论】:
-
能否提供 HTML 和 Watir 代码?链接到该页面,如果它是公开的,也会有所帮助。
-
Tiffany,一年多前我就实现了 Jenkins,就是因为这样的兼容性问题,而且从未回头。 9/10 次,时间或 Ruby/库版本存在一些烦人的问题。我给了我们的开发人员一些从属虚拟机来使用(让 Jenkins 使用),他们可以使用我想要的任何脚本。我知道这并不能回答你的问题,但它让我的生活变得如此轻松!此外,从 Jenkins -> 脚本传递参数非常容易,任何人都可以使用自定义设置运行测试。
-
感谢 Jenkins 的建议 Adam - 我会调查一下!
标签: watir