【问题标题】:Watir-Webriver - Automating autocompletion fieldWatir-Webdriver - 自动化自动完成字段
【发布时间】:2014-07-30 22:26:57
【问题描述】:

我正在使用 Watir-webdriver 输入一个问题的答案,该问题会在您从选择中键入时自动完成,我已经到处搜索答案但无济于事。

这是我试图从中获取某种形式的 id 的代码的 sn-p,因此我可以将其注入其中;)

<input type="text" data-bind="source: MultiOptionsList,events:{select:AutoSelect},value:     AutocomplateText" data-text-field="Value" data-role="autocomplete" class="form-input k-input" style="width: 100%;" autocomplete="off" role="textbox" aria-haspopup="true" aria-disabled="false" aria-readonly="false" aria-autocomplete="list" aria-owns="" aria-busy="false">

希望这是有道理的,寻找类似 "@browser.(:id => "blah").set "#{arg}"" 的东西

谢谢各位!

【问题讨论】:

  • 您应该能够像设置任何其他文本字段一样设置文本字段 - 即使用.set。如果这不起作用,您将需要提供更多详细信息 - 即发生了什么,没有发生什么。
  • 谢谢,贾斯汀,我已经进入了一个非常长的申请流程大约 15 页,特别是这一页是唯一与其他所有输入不同的输入,我有按钮点击、勾选框,单选按钮,文本输入,它们都工作得很好,只是这个特殊的文本框与其他文本框不同,因为当您键入时,它开始自动填充一组可供选择的答案,它没有可供我注入的 ID - 希望这是有道理的。并感谢您的回复,因为我无法设置 ????(:id => "blah") 因为我不知道 blah 是什么 - 希望这会有所帮助
  • 听起来您的第一个问题是能够找到页面上的文本字段。这是页面上唯一的自动完成控件吗?如果是这样,您可以通过 data-role 属性定位元素。否则,您将需要采取不同的策略来查找元素,如果不查看页面的其余部分,我们很难帮助您做到这一点。虽然我的书 "Watirways" 大部分都在进行中,但您可能会发现它很有帮助,因为它涵盖了寻找元素的不同策略。
  • 我将查看 data-role 属性,是的,这是页面上使用的唯一自动完成控件,再次感谢我会报告我的发现! - 我也会通读你的书 - 谢谢你的链接;)

标签: autocomplete watir-webdriver


【解决方案1】:

鉴于这是页面上唯一的自动完成控件,并且文本字段没有任何描述性属性,您可以通过其 data-role 属性来定位元素:

browser.text_field(:data_role => 'autocomplete').set('some text')

【讨论】:

  • 但是,您应该真正使用 id,因为这会给您的测试带来潜在的脆弱性。
  • 感谢 Rogue,我正在处理的代码非常脆弱,目前许多重复的 id 和文本字段名称仅用于占位符,现在我面临一个按钮类在整个应用程序过程中使用,但目前它有些不正确,我计划做的是向开发人员反馈我在下面的这个表单 sn-p 上创建一个简单的自动化测试时遇到的所有问题
  • 今天有另一个应用程序迭代迭代,我快速查看了代码,这些已经替换了所有按钮,不应该造成问题 - 关于如何使用 watir 找到它的任何帮助将是一个很大的帮助我认为它会在 browser.button(:class=> 'butt' :id =>PersonClick).click 沿着这些线的某个地方 - 再次感谢你们摇滚!
  • 很难判断该按钮的真正独特之处,但browser.button(:class =&gt; 'butt', :data_bind =&gt; 'click: PersonClick').clickbrowser.button(:class =&gt; 'butt', :data_bind =&gt; /PersonClick/).click 可能有效。
猜你喜欢
  • 1970-01-01
  • 2013-01-08
  • 1970-01-01
  • 2010-10-15
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多