[英]Capybara/Selenium Capybara::ElementNotFound - when running @javascript
[英]Running parallel selenium tests with capybara
背景:
我有一组针对我的Rails 3应用程序运行的Capybara集成测试。 对于测试套件的其他部分,我正在使用Rspec 。
我的Mac OSX开发人员计算机上有一个硒2.6.0独立服务器中心。
java -jar selenium-server-standalone-2.6.0.jar -role hub
我正在运行几个虚拟机,每个虚拟机都通过一个硒节点连接到集线器:
java -jar selenium-server-standalone-2.6.0.jar -role webdriver -hub http://0.0.1.12:4444/grid/register port 5555 -browser browserName="internet explorer",version=8,platform=WINDOWS
效果很好,在此屏幕快照中,控制台显示我已将IE7和IE8浏览器连接到集线器:
我已经将capybara设置为针对硒集线器运行(将测试委托给节点)。
Capybara.app_host = "myapp.dev"
Capybara.default_driver = :selenium
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app,
:browser => :remote,
:url => "http://localhost:4444/wd/hub",
:desired_capabilities => :internet_explorer)
end
它可以工作,但是只能在单个internet_explorer节点上运行测试。 似乎是“第一批”。 如果我将其关闭,则测试将成功在另一个节点上运行。
我一直在尝试parallel_tests项目,按建议配置capybara,但这仍然只能启动一个集成测试。
如何在所有internet_explorer节点上同时运行集成?
额外的问题:如果我想在所有连接的节点上运行集成测试,而不考虑浏览器的功能,我该怎么做?
在这里,您必须为不同的浏览器触发相同的测试,因此可以尝试启动两个测试过程,即两次运行同一命令。
启动节点后,网格将处理不同节点上的执行。
在您的情况下,您正在执行测试,并且仅针对Grid启动套件/进程。 仅出于测试目的,尝试一次又一次触发这些测试两次。 如果您无法通过此操作来实现,请使用Ant或类似的方法来控制测试的执行。
对于IE WebDrive,您可以在一个物理节点上最多运行1个测试! 如果要使用IE Webdriver实现并行性,可以尝试通过向集线器添加/注册更多物理节点来实现。
关于集线器控制台的以上屏幕截图,它还仅显示一个IE图标。 出现错误信息“最多支持5 ....”,但是您可以考虑显示在其下方的各个浏览器的图标编号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.