当前位置: 首页 > 面试题库 >

当使用capybara / rails运行selenium时,如何配置服务器?

梁研
2023-03-14
问题内容

通常,我在端口3000上使用Rails开发服务器。

水豚/黄瓜使用Capybara.server_port = 31337。如果我从默认驱动程序交换到selenium,则看起来它尝试在端口80上进行连接。

我想了解:

  • 使用selenium时,是否需要在测试环境中单独实例化测试服务器。
  • 如果上述问题的答案是肯定的,那么我该如何做才能在Web驱动程序之间无缝切换而不必不断进行更改?

如果有人举了一个env.rb配置示例,可以帮助您,请告诉我!

谢谢!


问题答案:

如果使用硒,则应在测试环境中启动Web服务器。您可以在与开发不同的端口上启动它。然后,您应该将Capybara配置为使用该端口:

  Capybara.run_server = true #Whether start server when testing
  Capybara.server_port = 8200
  Capybara.default_selector = :css #:xpath #default selector , you can change to :css
  Capybara.default_wait_time = 5 #When we testing AJAX, we can set a default wait time
  Capybara.ignore_hidden_elements = false #Ignore hidden elements when testing, make helpful when you hide or show elements using javascript
  Capybara.javascript_driver = :selenium #default driver when you using @javascript tag
  # Other option is:
  # Capybara.javascript_driver = :webkit

如果您不想每次在运行黄瓜方案之前都启动服务器,建议您使用capybara
webkit
驱动程序。所有JavaScript方案都将在后台运行。它还将在连续集成服务器上工作。

如果您在Linux平台上,则capybara-
webkit需要X服务器才能运行。要设置它,您可以使用无头宝石。这是黄瓜的无头配置:

# place code below in features/support/headless.rb
if Capybara.current_driver == :webkit
  require 'headless'

  headless = Headless.new
  headless.start

  at_exit do
    headless.destroy
  end
end


 类似资料:
  • ~/tests>uname-a Linux ghopper-K52F 4.10.0-40-generic#44-Ubuntu SMP Thu 11月9日14:49:09 UTC 2017 x86_64 x86_64 x86_64 gnu/Linux 我想用chromedriver启动服务器 null 附言。我在另一台电脑上做同样的事情,对我来说一切都很好。我认为问题出在环境上,而不是服务器的配置上

  • 问题内容: 我有一个设计为在禁用JavaScript时仍能正常运行的应用程序,因此我想编写一些涵盖这些情况的规范。 我将Selenium(Firefox)与Capybara一起使用,并且正在注册一个禁用JavaScript的新驱动程序(通过Selenium的属性) 功能规格实际上无法禁用JavaScript。在测试过程中弹出浏览器窗口并用暂停时,我可以肯定地单击我知道需要JavaScript的项目

  • 我开发了一个Maven应用程序,当我从Netbeans运行它时,它运行良好,但当我尝试使用jar文件时,它生成了以下错误: 组织。阿帕奇。cxf。服务工厂ServiceConstructionException:无法解析null“”的绑定。 我认为我的文件配置不正确。

  • 问题内容: 我正在尝试运行selenium服务器,并出现错误: 没有-r(反正是什么?) 我应该如何启动服务器? 如何设置非默认端口来收听? 这两篇文章:1 2-关于语法矛盾。我认为。 问题答案: 如果要指定端口,请执行 从3.8.1开始,不再需要指定驱动程序:

  • 问题内容: 关于如何使用Capybara / Selenium / Rspec 执行javascript测试的例子很多,您可以在其中编写如下测试: 但是,使用 minitest时, 您无法传递第二个参数来指示selenium执行测试。 有没有人对如何做到这一点有任何想法? 问题答案: 嗯,我注意到文档中有几行似乎说以上内容只能在Rspec中完成 但是,如果您使用的是 RSpec或Cucumber

  • Configuring Notary Depending on the environment and purpose of running Notary services, there are two options: using docker-compose when running locally or running each service separately, usually thr