我正在使用基于Selenium,Watir和Cucumber框架的Ruby编写自动化。最近,由于文本字段的更改,我的一个测试开始失败,具体而言,在与该字段交互时发生Javascript调用,该字段将输入限制为数字KeyCodes,带有一些小数限制和粘贴。当此更改生效时,除了“。”之外,我不再接受我尝试输入的输入。我试图转换为数字输入(to_i和to_f),以及设置值的替代方法(参见下文):
browser.text_field(:id, "rate").set(val)
或
browser.text_field(:id, "rate").value=(val)
或
browser.text_field(:id, "rate").send_keys :numpad1
在所有这些情况下,输入框中除小数外没有任何内容。我无法弄清楚如何处理这个Javascript。我的问题是1)有没有人遇到并修复了与此类似的东西,并禁止2)我如何以编程方式暂时关闭Javascript以输入值,然后将其重新打开以便能够保持其余的完整性环境?
答案 0 :(得分:0)
必要时,使用JavaScript打击JavaScript:
browser.execute_script("document.getElementById('rate').setAttribute('value', '12345')")