【问题标题】:How to write text values in masked field?如何在屏蔽字段中写入文本值?
【发布时间】:2011-10-06 08:19:42
【问题描述】:

我需要一些与 Web 表单中的屏蔽字段相关的帮助。电话字段的语法是(___)___-_____,如果我在 ruby​​ shell 中执行此代码

browser.text_field(:id => 'txtphone').set '7893457889'

...电话字段中没有添加任何内容。 然后我在一个博客中找到了这个解决方案,有人说首先使用这个代码取消屏蔽这个字段。

browser.text_field(:id,'txtphone').fire_event("unmask")

然后再写上面的代码。

browser.text_field(:id => 'txtphone').set '7893457889'

但仍然没有发生任何事情。请帮助我...我做得对还是仍然有错误。

【问题讨论】:

  • 如果是公开的,请提供相关的HTML或页面链接。
  • 我认为您指的是这个问题stackoverflow.com/questions/6221417/… 但坦率地说,我不确定所述的“解决方案”是否真的是一个解决方案,因为我从未见过浏览器触发名为“unmask”的事件OP还表示该脚本在IRB中运行时有效。我认为可能发生的所有事情是添加该代码允许客户端代码有足够的时间在他尝试设置该字段之前进行处理,它有效。我会先尝试通过 IRB 完成这项工作,然后看看代码是否全速工作。可能是时间问题
  • 因从不响应 HTML 请求而被取消,而是发布了重复的问题 stackoverflow.com/questions/7845739/masked-text-box-issue

标签: watir


【解决方案1】:

如果您可以提供一些页面 HTML 示例,则更容易为您提供更可能有效的答案。

鉴于您为我们提供的工作方式,我们必须采用此类屏蔽输入字段通常工作的正常方式并从那里开始。通常带有这种东西的页面正在调用由特定事件触发的 javascript 函数。大多数情况下,这是一个诸如 onchange 之类的事件,但也可能是 keypress 之类的事件,甚至在普通用户在单元格中键入或粘贴文本时发生的任何其他事件。

您可能需要尝试使用“.fire_event”方法来触发正确的 javascript 事件,或者如果完全失败,则直接调用以执行正确的脚本

这样做时,不要将诸如“applymask”之类的脚本名称与导致该脚本被调用的 javascript 事件混淆。

How to find out which JavaScript events fired? 这个问题的答案包括一些关于如何使用 firebug 或 chrome 开发人员工具来确定当您与浏览器屏幕上的对象交互时触发哪些事件的有用信息。

更新: OP 没有在此处回复以表明此答案是否有任何用处,而是在此处Masked Text Box issue 并通过在供应商的演示站点上进行挖掘(从那时起他实际上已经当我们要求它时发布了一些 HTML)我能够使用 watir-webdriver 找到对他有用的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 2018-05-26
    相关资源
    最近更新 更多