使用 watir-webdriver,我尝试设置文本字段的值。
browser.text_field(:id, "phoneNumbers_value_input").set("5555551234")
当我运行该命令时,我可以看到 watir 找到了该字段,因为光标设置在该字段上,但没有输入任何文本。我也尝试过 send_keys 和追加命令,但似乎没有任何效果。这些方法不会引发异常。
我能发现这个字段和页面上的其他字段(都工作正常)之间的唯一区别是它上面有这个 JQuery 掩码。
$(selector).mask("(999) 999-9999");
关于如何设置文本字段有什么想法吗?
Edit:
更多 Javascript 的内容:
selector = '#' + id(field.id) + '_input';
if (field.format == 'phone') {
$(selector).mask("(999) 999-9999");
}
字段的 HTML:
<div id="phoneNumbers_value_form_item" class="form_item validated no_focus">
<label for="phoneNumbers_value" class="form_label">phone</label>
<input type="text" value="" name="phoneNumbers[][value]" id="phoneNumbers_value_input" class="text">
<div class="tip"> </div>
<div class="tip_validating">
</div>
<div class="tip_error">
</div>
</div>
我在您提供的 HTML 中没有看到任何与您帖子顶部的 ruby 代码中处理的文本输入字段相匹配的元素。例如没有任何 ID 为“phone”的内容
根据您问题中的 HTML,我希望以下内容能够工作
browser.text_field(:id, "phoneNumbers_value_input").set("5555551234")
查看您在评论中链接的示例页面,当我在 ID 为“phone”的输入字段上使用 google chrome 和“检查元素”功能时,我发现有许多与该字段关联的事件侦听器(模糊) 、焦点、输入、按键、按键、取消屏蔽)
“焦点”特别引起了我的注意,在该字段上看到它让我认为您可能需要首先针对同一元素触发一个事件,例如 onfocus 事件,以便激活该字段,然后尝试设置该值。
您会注意到,当您手动操作时,该字段一开始是空白的,但是一旦获得焦点,它就会向用户显示输入掩码的格式,这很可能需要首先发生,然后才能看到任何类型的输入。
编辑:在这种情况下,根据提问者的反馈,答案是他们需要首先针对文本字段触发“unmask”事件,然后设置他们想要的值,以使事情正常工作自动化测试时正确。这不会执行字段屏蔽功能,但我再次怀疑这种情况下的测试任务是广泛测试第 3 方(JQuery)插件,并且他们更关心后端的业务逻辑等,因此简单所需要的是能够在不妨碍屏蔽代码的情况下设置值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)