您好我一直在苦苦挣扎应该是简单的选择与水豚。这就是我在页面上的内容:
<a title="Activity" class="" href="/changes">Activity <span class="badge">1</span></a>
我需要声明活动span.badge
标记内有1
值a
。
在我发布之前,打印页面内容并做了save_and_open_page
,这个内容就在那里。
这是我试过的(看起来最有希望甚至找不到标签):
find(:xpath, "//a[contains(.,'Activity')]")
find(:xpath, "//a[contains(@title, \"Activity\")]")
find(:xpath, "//a[@title='Activity']")
find(:xpath, "//a", :text => /reActivity /i)
还有很多其他值得一提的东西,你会怎么做?
问题更新:
我忘了提到这个html实际上最初隐藏在页面上,因为它是子菜单的一部分。所以添加Capybara.ignore_hidden_elements = false
有效,但是将这个全局配置添加到您的测试中,还有其他想法吗?
答案 0 :(得分:0)
如果我理解正确
//a[@title="Activity" and span[@class="badge" and . = 1]]
答案 1 :(得分:0)
如果我理解你要做什么,可以使用css选择器,这比XPath更容易阅读
find('a[title=Activity] span.badge', text: '1', visible: :all)
假设元素在页面上可见,应该找到你想要的东西。如果在工作中使用类似于以下的RSpec
,则断言expect(page).to have_css('a[title=Activity] span.badge', text: '1', visible: :all)