我有一个设计为在禁用JavaScript时仍能正常运行的应用程序,因此我想编写一些涵盖这些情况的规范。
我将Selenium(Firefox)与Capybara一起使用,并且正在注册一个禁用JavaScript的新驱动程序(通过Selenium的html" target="_blank">javascript.enabled
属性)
# spec/rails_helper.rb
Capybara.configure do |config|
config.ignore_hidden_elements = true
config.default_driver = :selenium
end
Capybara.register_driver :disable_js do |app|
profile = Selenium::WebDriver::Firefox::Profile.new
profile["javascript.enabled"] = false
Capybara::Selenium::Driver.new(app, profile: profile)
end
# spec/features/siging_in_spec.rb
context "JavaScript disabled", driver: :disable_js do
it "user can still sign in" do
# ...
# ...
end
end
功能规格实际上无法禁用JavaScript。在测试过程中弹出浏览器窗口并用暂停时binding.pry
,我可以肯定地单击我知道需要JavaScript的项目并看到它们正常工作。
旁注:如果我实际上进入Firefox设置并禁用了JavaScript,则测试通过。因此,它似乎继承了我在浏览器中设置的任何配置,而不实际使用注册驱动程序时指定的配置。
这是正确的方法,还是我错过了什么?
谢谢!
javascript.enabled
注册驱动程序时无法更改设置,因为selenium会将其冻结为true-
https://github.com/SeleniumHQ/selenium/blob/master/javascript/firefox-
driver/webdriver.json#L35-
这样做是因为尝试在禁用JS的情况下尝试使用selenium和firefox的问题https://github.com/SeleniumHQ/selenium/issues/635-不太可能更改。您可以只使用rack_test驱动程序运行那些特定的测试吗?还是没有提供足够的功能?
问题内容: 我想知道在使用selenium时如何禁用javascript,以便可以测试服务器端验证。 我找到了这篇文章,但我不知道该怎么做。就像我制作此javascript文件,然后呢? http://thom.org.uk/2006/03/12/disabling-javascript-from- selenium/ 问题答案: 编辑 在此期间,确实出现了更好的替代方法,请参见其他答案,例如 如
我正在从恶作剧者迁移到无头铬的过程中。 有趣的是,当在聚焦元素后放置时,规范也通过了无头铬! 我在这里能做什么?我在正确的轨道上?我应该尝试https://github.com/twalpole/appariation驱动程序吗?
问题内容: 关于如何使用Capybara / Selenium / Rspec 执行javascript测试的例子很多,您可以在其中编写如下测试: 但是,使用 minitest时, 您无法传递第二个参数来指示selenium执行测试。 有没有人对如何做到这一点有任何想法? 问题答案: 嗯,我注意到文档中有几行似乎说以上内容只能在Rspec中完成 但是,如果您使用的是 RSpec或Cucumber
问题内容: 通常,我在端口3000上使用Rails开发服务器。 水豚/黄瓜使用。如果我从默认驱动程序交换到selenium,则看起来它尝试在端口80上进行连接。 我想了解: 使用selenium时,是否需要在测试环境中单独实例化测试服务器。 如果上述问题的答案是肯定的,那么我该如何做才能在Web驱动程序之间无缝切换而不必不断进行更改? 如果有人举了一个env.rb配置示例,可以帮助您,请告诉我!
问题内容: 我在Rails项目(在Ubuntu 10.04系统上)中使用Capybaraselenium,并且现在在运行测试firefox负载时刚刚升级了firefox,但是现在它已安装了所有附加组件,并且一直等到我设置好每个人第一次。 启动selenium时是否可以禁用所有这些附加组件? 要么 有没有办法设置我所有的加载项并保存设置,以免每次运行测试时都提示我? 更新资料 如果我将其更改为使用c
我想在safari中使用selenium进行测试。 不幸的是,当我尝试使用safari调试问题时,会出现一个通知,要求我在safari中禁用自动化或退出(附图)。 注意:我正在使用MacOs Catalina和Javascript