gpt4 book ai didi

ruby - Selenium 找不到类型为数字的字段

转载 作者:太空宇宙 更新时间:2023-11-03 18:17:49 25 4
gpt4 key购买 nike

我在让 Cucumber 使用 HTML5 type="number" 查找字段时遇到问题。我不太喜欢它们在浏览器中的显示方式,但我有几个字段需要移动设备上的数字键盘,这似乎是最简单的方法。我正在使用 SimpleForm 构建表单,当我设置 :as => :text 时一切正常,但如果我设置 :as => :number,字段不会不会被填满。我没有收到任何错误,只是该字段没有被填充。

具体来说,当我有这样的步骤时:

And I fill in "application_form_age" with "52"

那么这个标签就不会被填充:

<input class=​"numeric integer required" id=​"application_form_age" min=​"0" name=​"application_form[age]​" size=​"50" step=​"1" type=​"number">​

但是这个有效:

<input class=​"string required" id=​"application_form_age" name=​"application_form[age]​" size=​"50" type=​"text">​

此外,它只发生在@javascript 场景中。在不需要 @javascript 并且场景不启动浏览器的情况下,它也能正常工作。

事物的版本:

capybara (2.2.1)
cucumber (1.3.14)
selenium-webdriver (2.41.0)
simple_form (2.1.1)
webrat (0.7.3)

Firefox 29.0

我被难住了。我试着抽出一堆我的应用程序 JS 和 CSS,看看我正在做的事情是否破坏了它,但没有成功。我只是通过强制这些字段在我的测试环境中没有 HTML5 类型编号来修补它,但我不想那样生活。还有其他人看到这个吗?我找不到任何关于它的引用资料,这让我觉得这是我正在做的事情。但我还没弄明白。

最佳答案

好的,我发现 firefox 有一个选项可以禁用数字输入字段支持:“dom.forms.number”。

因此,如果您在 env.rb 中添加以下行,数字输入将被禁用,测试将再次运行。

Capybara.register_driver :selenium do |app|
profile = Selenium::WebDriver::Firefox::Profile.new
profile["dom.forms.number"] = false
Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => profile)
end

关于ruby - Selenium 找不到类型为数字的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23352000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com