ruby - 使用 ruby​​ capybara 获取页面的所有 href 链接

标签 ruby cucumber capybara

我在获取页面链接列表并将其保存为数组时遇到问题,因此我可以找出页面中使用了哪些链接

<ul class="test">   
 <li class="social_1"></li>
     <a href="link1"></a>   
 <li class="social_2"></li>
     <a href="link2"></a>   
 <li class="social_3"></li>
     <a href="link3"></a>   
 <li class="social_4"></li>
     <a href="link4"></a> 
</ul>

我试过用

list_items = page.all('li').collect(&:href)
puts list_items;

但它没有给出正确答案。

我有这个错误

  undefined method `href' for #<Capybara::Element tag="li"> (NoMethodError)

最佳答案

有两个问题:

  • href 属性存在于 a 元素上而不是 li 元素上。
  • 元素没有 href 方法。要获取属性值,请使用 [] 方法。

根据您的喜好,以下任何一种都可以:

page.all('li').map { |li| li.find('a')['href'] }

page.all('li a').map { |a| a['href'] }

page.all('a').map { |a| a['href'] }

关于ruby - 使用 ruby​​ capybara 获取页面的所有 href 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27154987/

相关文章:

javascript - 访问事件模态框内的 html

ruby - 如何使用 Ruby 和 FireWatir 将 (Control) + (1) 等键盘命令发送到浏览器?

Cucumber 在 JUnit5 中找不到任何特性

java - cucumber .runtime.CucumberException : Couldn't load plugin class: io. qameta.allure.cucumberjvm.AllureCucumberJvm

capybara:用终止输入键填写表单字段值

ruby - 为什么 Poltergeist 驱动程序找不到 Capybara (Ruby) 成功找到的某些元素

javascript - 混淆/缩小动态生成的 javascript 的最佳方法是什么

javascript - rails - 如何升级我的 jquery,我没有在 app/assets 中看到它,但它在 application.js 中被引用?

ruby-on-rails - "taken"是 ruby​​ 中的关键字吗?

ruby-on-rails - Rails、Cucumber、Capybara、Selenium、Pow、域、子域和 javascript