当前位置: 首页 > 知识库问答 >
问题:

水豚RSpec不查找和单击CSS元素

越安翔
2023-03-14

我正在为我的Rails代码库编写一个测试套件,并试图使用Capybara单击一个搜索图标,检查搜索字段是否出现。然而,由于Capybara找不到CSS元素“search\u icon”,测试一直失败。我试过使用click\u on()查找(CSS)。单击,但都不起作用。前者返回错误

1) 内容搜索单击放大镜会使搜索框出现故障/错误:单击('search\u icon')Capybara::ElementNotFound:无法找到链接或按钮“search\u icon”#/规格/特征/内容/内容\u搜索\u规格rb:13:in“block(2 levels)in”

而后者返回

1) 内容搜索单击放大镜使搜索框显示失败/错误:查找(“#search\u icon”)。单击Capybara::ElementNotFound:找不到css“#search\u icon”#/规格/特征/内容/内容\u搜索\u规格rb:13:in“block(2 levels)in”

这是RSpec解译

scenario "clicking magnifying glass makes search box appear" do
  visit contents_path

  find("#search_icon").click

  #Also tried this:
  #click_on('search_icon')

  expect(find("#search-form").visible?).to be true
end

尝试查找此元素的

<div class="pull-right has-tooltip" data-title="Search" id="search_icon" data-original-title="" title="">

<i class="glyphicons-icon search"></i>

</div>

我的RSpec场景代码是否存在问题,或者我如何找到并单击此元素?


共有1个答案

冷正青
2023-03-14

#click_on是#click_link_or_button的别名

find('#search_icon .search').click

此外,如果您使用capybara rspec匹配器,那么最后的期望值会更好

expect(page).to have_css('#search_form', visible: true)

只有当您更改了Capybaras默认的只查找可见元素时,才需要visible:true

 类似资料:
  • 问题:无法点击名为BT_SEARCH的元素 > click_button'Hae'返回:无法找到按钮"Hae"... click_link'Hae'返回:无法找到链接"Hae"... 查找(:xpath,“//输入[@name='BT\u SEARCH']”)。单击似乎找不到元素。 我无法修改源,也没有可用的id或类标签。此外,该页面使用ASP,我认为这是导致问题的原因。

  • 我是cucumber和水豚的新手,我对以下错误感到困惑: 在我的功能中,我有: 我的步骤如下所示: 我尝试了“click(button\u text)和click\u link”方法。我想这可能是我没有看到的明显的东西。我试图找到按钮元素的css定位器,然后单击该元素。我认为regex不需要更改,因为我正在更改“button\u text”局部变量的内容。还是我?

  • 在我的Rails项目中,我通常使用在我的应用程序中构建/创建用户。我想知道在使用Cucumber, Capybara时是否可以使用来测试用户与我的应用程序的交互。没有数据库可以保存它们,我只是想存储它们的凭据 我可以有很多用户希望为每个用户创建工厂(除非有更好的Cucumber方法)。 在我的支持文件夹中,我可以创建一个Factorys文件夹,然后创建一个。保存每个用户的rb文件。 在我的文件中,

  • 我一直在忙着自动化这个选项页面,因为它提供了各种选项,每个选项都有自己的子选项,所以我不想花时间通过它们的xpath(或CSS)标识和声明所有元素。因此,我有一个可靠的代码,可以很好地找到HTML标记中的文本标识符。 通过运行这个,我得到一个打印输出,就像 > 里程数 等等。所以嘣!我知道它们已经被识别,但我的e.click()实际上并没有点击。当我开始测试时,我没有得到任何错误,它只是说它通过了

  • 问题内容: 我正在寻找网站。在检查元素中看到以下内容: 需要获取并按标题单击元素。像这样: 但是通过标题。 问题答案: 就像巴拉克·马诺斯(Barak Manos)所说,答案是: 以[0]结尾的情况是列表。

  • 我是一个用cucumber和水豚配食的新手。我需要在使用capybara将鼠标悬停在网页的某些元素上后单击显示的链接 例如att.com 1、场景悬停在个人点击att.com上 悬停在商店上方的另一个场景——捆绑包——点击热门捆绑包 如何使用水豚的悬停和点击方法实现这一点,或者是否有其他方法可以实现这一点。 尝试的选项是 但它抱怨找不到xpath