如何使用水豚选择下拉自动完成?

问题描述 投票:0回答:1

我有这个表单输入:

<%= 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 信息(我假设目前是这样)。

ruby-on-rails drop-down-menu rspec capybara
1个回答
0
投票

明白了!

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"

请回答是否存在执行此操作的真正方法

© www.soinside.com 2019 - 2024. All rights reserved.