我有这个表单输入:
<%= f.input :location, input_html: {id: "autocomplete", placeholder: ""}, required: true, hint: 'HINT.' %>
匹配的地址显示在下拉列表中,“由 Google 提供支持”。
如何用水豚点击它?
我尝试过:
fill_in 'Location', with: "Toronto ON Canada"
select 'Toronto ON Canada', from: "Location"
fill_in 'Location', with: "Toronto ON Canada"
find('#autocomplete', text: "Toronto ON Canada").click
诚然,我仍然对选择器和语法感到困惑。当我绑定.pry(在rspec中使用绑定.pry停止进程)时,我可以在浏览器的下拉列表中看到选项,我应该单击第一个选项(或按向下箭头,我将稍后查看)。
当我进入 Chrome 工具时,下拉菜单消失,因此我无法检查下拉菜单。另外,如果我切换到终端将水豚代码输入到绑定撬中,下拉菜单就会消失,所以我猜如果窗口未激活,下拉菜单就会消失,不确定这对测试期间的水豚来说是否重要。
这是对maps.googleapis.com 的一些ajax 调用
<input class="form-control string required pac-target-input" id="autocomplete" placeholder="" required="required" aria-required="true" type="text" value="" name="fan[location]" autocomplete="off">
尽管让我尝试用水豚点击按钮,而不选择自动完成下拉列表中的第一个选项...
给我表单错误:
Please use the Google autosuggest dropdown address.
我记得在 2017 年实施过这个,哈哈。尽管表单中的文本完全相同,但需要单击下拉菜单才能通过 api 获取正确的 google 信息(我假设目前是这样)。
明白了!
fill_in 'Location', with: "Toronto, ON, Canada"
sleep 2
find('#autocomplete').native.send_keys(:backspace)
sleep 2
find('#autocomplete').native.send_keys(:arrow_down)
sleep 2
find('#autocomplete').native.send_keys(:tab)
sleep 2
click_button "Sign up"
请回答是否存在执行此操作的真正方法