试图让这个测试失败但没有成功.
我有这个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实现相同的目标吗?
干杯!
Jan*_*imo 16
从RSpec 2.11(2012年7月)开始,首选方法是使用以下expect
语法:
expect(page).to have_css("#navigation a", text: "Radio")
Run Code Online (Sandbox Code Playgroud)
您可以将RSpec配置为仅接受此新语法以保持代码库的一致性.
mic*_*ael 12
事实证明,在'导航'DIV中有另一个带有'Radio'文本的元素,因此导致测试失败.
为了将来参考,识别第一个元素显然表现为预期并且未通过测试:
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)
归档时间: |
|
查看次数: |
26212 次 |
最近记录: |