【问题标题】:Cannot add a number in a text field containing html5 number validation using watir/selenium in Ruby无法在包含 html5 数字验证的文本字段中添加数字,在 Ruby 中使用 watir/selenium
【发布时间】:2017-02-18 13:07:34
【问题描述】:

@broswer.text_field(:id => 'mobile1').set "07888888888"
<input type="number" class="mobileno required" name="mobile_field" id="mobile1">

第一行对应于我尝试在文本字段中设置数字时,但问题是当它将数字插入文本字段时,零被删除,因此字段中剩余的数字只是'7888888888 ' 这不是一个有效的数字,因此验证失败。我尝试过使用发送键方法,甚至编辑文本字段的值,但没有任何效果。任何帮助表示赞赏。

【问题讨论】:

  • 输入类型不应该是数字。那么应该保留前导零。请忽略我之前的评论。
  • 当您输入该数字时,它是否可以手动工作? Watir 不应该做任何不同的事情。
  • 手动也是一样的。但是当我在文本字段中手动粘贴数字时。它工作得很好。这可能是他们的问题,但我们有解决这个问题的方法吗?
  • 如果前导零被删除(通过自动或手动输入),则必须进行一些客户端验证。在这种情况下,它是预期的功能。在任何情况下,使用上面的 sn-ps (watir 6.0.2 + chrome 56) 都无法重现所描述的行为。
  • @orde,我的意思是,即使是 html5 数字验证(客户端),也不应该删除初始零。假设它具有额外的 html5 验证的预期功能,那么我应该如何使用像 watir 这样的自动化工具来解决它?

标签: ruby html selenium watir watir-webdriver


【解决方案1】:

正如您手动所说,它从 text_filed 中删除了 0,您可能想尝试 execute_script 来检查应用程序的行为。

@browser.execute_script("$('text_field#mobile1').val('07888888888')") 

【讨论】:

    【解决方案2】:

    将输入类型更改为文本。

    如果您的数据库需要整数,那么您必须在控制器中将文本字符串转换为整数。这里的问题(我很确定)是零在保存到数据库时会被消除。

    希望这会有所帮助。

    警告:未经测试的代码

    【讨论】:

    • 我无法更改它,因为该组件是第三方的。除了更改文本字段中的任何内容之外,这个问题可以解决吗?
    • @HassanAbbas 我没有答案了兄弟:'(
    猜你喜欢
    • 2014-08-08
    • 2014-05-30
    • 2011-12-30
    • 2022-10-19
    • 2012-12-21
    • 1970-01-01
    • 2012-03-25
    • 2021-05-17
    • 2018-01-17
    相关资源
    最近更新 更多