【发布时间】:2023-03-16 19:28:01
【问题描述】:
我在页面上有以下代码:
<div class="col-md-5 col-lg-3">
<div class="react-selectize bootstrap3 root-node simple-select open">
<div class="react-selectize-control">
<div class="react-selectize-placeholder">testing!</div>
<div class="react-selectize-search-field-and-selected-values">
<input class="resizable-input" style="width: 4px;" type="input">
如果我物理选择输入字段,然后使用 watir-classic 运行以下命令:
BROWSER.div(:class => 'col-md-5 col-lg-3')
.div(:class => 'react-selectize-search-field-and-selected-values')
.text_field(:class => 'resizable-input')
.send_keys('Magg')
它将在字段中输入Magg,但如果我不手动选择字段,我似乎无法输入文本。
我尝试了以下方法:
BROWSER.div(:class => 'col-md-5 col-lg-3')
.div(:class => 'react-selectize-search-field-and-selected-values')
.text_field(:class => 'resizable-input')
与
.set('Magg')
.fire_event('onfocus')
.fire_event('mousedown')
.fire_event('mouseup')
使用
.parent.text_field(:class => 'resizable-input')
.parent.input(:class => 'resizable-input').set('Magg')
.input(:class => 'resizable-input').set('Magg')
.input(:class => 'resizable-input').send_keys('Magg')
我一直在与使用控件的开发人员合作,但我们都无法弄清楚如何赋予控件焦点,以便 send_keys 在不手动选择控件的情况下工作。任何指导将不胜感激。
【问题讨论】:
-
必须点击输入才能激活吗?像
b.input(class: "resizable-input").set "foo"这样简单的东西真的有用吗? (如果没有,如果有的话,你会得到什么错误)。是否需要指定外部容器来选择输入?例如puts b.inputs(class: "resizable-input").size是否返回 1 以外的值? -
谢谢@JustinKo,您使用的是Watir WebDriver 还是Classic?我猜我可能必须弄清楚如何让 WebDriver 工作,然后再试一次。
-
感谢 @JustinKo,抱歉,我查看了您的链接,但我不是专业程序员,也没有找到对我有意义的解决方案。
-
感谢@ChuckvanderLinden,通过识别控件的前一个 div,我能够点击我需要的那个。
-
感谢所有反馈的人。我花时间让 WebDriver 工作,并成功让 send_keys 输入文本。现在是我的下一个路障:)
标签: watir watir-classic