小编mic*_*ael的帖子

Capybara:是否可以从css字符串中获取属性值?

如果我有一些像这样的HTML:

<div id='drawer'><ul><li><a href='www'>description</a>...
Run Code Online (Sandbox Code Playgroud)

我已经看到我可以在Capybara获得href的值:

page.find('div#drawer a')['href']
Run Code Online (Sandbox Code Playgroud)

但有没有办法检索该值,如果它被完全描述为一个css字符串?即,试图获得'div#drawer a [href]'的值

我尝试过这样的表达式:

page.find('div#drawer a[href]')        => can't convert Capybara::Node::Element into String (TypeError)
page.find('div#drawer a[href]').value  => can't convert nil into String (TypeError)
page.find('div#drawer a[href]').text   => returns the text value of 'description'
Run Code Online (Sandbox Code Playgroud)

我在外部配置文件中有css表达式,所以有可能以某种方式直接使用它并检索有问题的属性的值吗?

谢谢...

capybara

27
推荐指数
1
解决办法
2万
查看次数

是否可以将JSON字符串转换为对象?

可能重复:
在ruby中解析JSON字符串

是否可以将JSON字符串转换为Ruby对象?我想用类似于以下表达式访问其信息:

drawer.stations.tv.header
Run Code Online (Sandbox Code Playgroud)

JSON字符串:

{
  "drawer" : {
    "stations" : {
      "tv" : {
        "header" : "TV Channels",
        "logos" : {
          "one" : "www1",
          "two" : "www2",
          "three" : "www3"
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

ruby json

21
推荐指数
2
解决办法
2万
查看次数

Capybara,按ID和Class检查HTML元素

来自初学者的两个问题.

Q1-是否可以通过ID和类断言HTML节点的存在?例如,要查看是否存在以下元素:

<div class="drawer" id="first"....>
Run Code Online (Sandbox Code Playgroud)

我见过你可以使用类似的东西:

 page.should have_css('div.drawer')
 page.should have_css('div#first')
Run Code Online (Sandbox Code Playgroud)

但我们可以以某种方式查询两个参数的存在,我尝试了以下,但没有工作:

page.should have_selector("div", :class => "drawer", :id => "first")
Run Code Online (Sandbox Code Playgroud)

Q2-是否可以在"内部"水豚方法中添加2个选择器,即,我已经看到您可以通过以下方式限制范围:

within("//div[@id='first']") do
Run Code Online (Sandbox Code Playgroud)

但我们可以通过以某种方式添加id ='first'和class ='drawer'来过滤那个DIV吗?

非常感谢!

capybara

18
推荐指数
1
解决办法
2万
查看次数

Capybara:如何使用xpath和css检查元素的TEXT值?

试图让这个测试失败但没有成功.

我有这个HTML:

<div id="navigation">
 <ul>
  <li>
   <a href="/url">TV</a>
Run Code Online (Sandbox Code Playgroud)

然后我试图识别A元素的文本并使其失败.

我已经在Xpath中使用了以下所有表达式,但即使我使用不同的文本进行比较,所有这些表达式都会继续传递:S

page.should have_xpath("//div[@id='navigation']//a", :content => 'Radio')
page.should have_xpath("//div[@id='navigation']//a", :text => 'Radio')
page.should have_xpath("//div[@id='navigation']//a[contains(string(),'Radio')]")
page.should have_xpath("//div[@id='navigation']//a[contains(text(),'Radio')]")
page.should have_xpath("//div[@id='navigation']//a[contains(.,'Radio')]")
Run Code Online (Sandbox Code Playgroud)

知道如何用capybara识别特定HTML元素的文本吗?和...有可能用CSS实现相同的目标吗?

干杯!

capybara

16
推荐指数
2
解决办法
3万
查看次数

Ruby/Rspec:可以比较两个对象的内容吗?

我在ruby中创建了2个不同的对象,具有完全相同的属性和值.

我现在要比较两个对象的内容是否相同,但以下比较:

actual.should == expected
actual.should eq(expected)
actual.should (be expected)
Run Code Online (Sandbox Code Playgroud)

失败了:

  Diff:
  @@ -1,4 +1,4 @@
  -#<Station:0x2807628
  +#<Station:0x2807610
Run Code Online (Sandbox Code Playgroud)

在rspec/ruby​​中有什么方法可以轻松实现这一点吗?

干杯!!

ruby rspec

12
推荐指数
4
解决办法
8832
查看次数

NoMethodError:尝试在 SitePrism 类中使用它时未定义方法“expect”

我有一个黄瓜、红宝石、siteprism 项目,我们使用“rspec”gem 来检查期望。这包含在我们的 env.rb 中并在步骤定义中成功使用。

我现在尝试在 SitePrism 类中做出一些断言,但出现错误。你知道我如何使用这些expect()方法吗?我尝试在定义 SitePrism 类的 .rb 文件中使用require 'rspec'plus ,但仍然遇到相同的错误:include Rspec

expect(local_value).to eq(@previous_value)
=> Error: NoMethodError: undefined method `expect' for #<xxx_Object @loaded=false>
Run Code Online (Sandbox Code Playgroud)

谢谢你!

ruby cucumber capybara site-prism

6
推荐指数
1
解决办法
7767
查看次数

Rspec比较:eq,match,be,==之间的差异?

开始使用黄瓜的rspec断言,我对哪种方式进行字符串比较有疑问.我已经尝试了以下4种方法,所有这些方法似乎产生了相同的结果,所以我想知道其中一种方法是否比其他方法更好?

而且,解释4种方法之间的区别是否容易?也许举个例子?

page.first('div#navigation a').text.should == 'Radio')
page.first('div#navigation a').text.should eq('Radio')
page.first('div#navigation a').text.should match('Radio')
page.first('div#navigation a').text.should (be 'Radio')
Run Code Online (Sandbox Code Playgroud)

非常感谢!!

rspec

5
推荐指数
1
解决办法
2224
查看次数

PHP - 带有相对路径的include()或require()在Windows上不起作用,即使在追加__DIR__时也是如此

我在这里阅读有关PHP的问题,当使用带有相对路径的include()或required()时,我看到的所有解决方案都是附加DIR

我目前正在使用Windows,即使错误消息显示DIR的当前值,然后相对路径似乎被添加为字符串,而不是向上升级,例如:

include(__DIR__ . "..\\another_folder\\file_2.php");
Run Code Online (Sandbox Code Playgroud)

产生以下错误:警告:include(C:\ xampp\htdocs\main_folder ..\another_folder\file_2.php)[function.include]:无法打开流:没有这样的文件或目录

知道发生了什么事吗?

php relative-path require include

3
推荐指数
1
解决办法
2万
查看次数

Ruby:每月特定日期(例如,每月的第1天)在两个日期之间发生的次数

我正在使用红宝石,我怀疑与我已经看过的答案略有不同.

我有两个约会(今天和明年四月),我想计算特定日期的次数,例如.每个月的第一天发生在两者之间(这个日期可以是可配置的,例如,每个月的第15天等).

你们有没有想过在Ruby中实现这一目标的方法?

ruby

0
推荐指数
1
解决办法
59
查看次数

标签 统计

capybara ×4

ruby ×4

rspec ×2

cucumber ×1

include ×1

json ×1

php ×1

relative-path ×1

require ×1

site-prism ×1