如果我有一些像这样的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表达式,所以有可能以某种方式直接使用它并检索有问题的属性的值吗?
谢谢...
可能重复:
在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) 来自初学者的两个问题.
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吗?
非常感谢!
试图让这个测试失败但没有成功.
我有这个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实现相同的目标吗?
干杯!
我在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中有什么方法可以轻松实现这一点吗?
干杯!!
我有一个黄瓜、红宝石、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)
谢谢你!
开始使用黄瓜的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)
非常感谢!!
我在这里阅读有关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]:无法打开流:没有这样的文件或目录
知道发生了什么事吗?
我正在使用红宝石,我怀疑与我已经看过的答案略有不同.
我有两个约会(今天和明年四月),我想计算特定日期的次数,例如.每个月的第一天发生在两者之间(这个日期可以是可配置的,例如,每个月的第15天等).
你们有没有想过在Ruby中实现这一目标的方法?