如何使用 page.find 通过 rspec 测试找到变量

How to find a variable with rspec tests using page.find

我有一个测试用例,我的大多数其他页面至少有一个纯文本字段,可以使用以下方法找到:

page.find("tr", text: "What I filled in").find("a.tick").click

这个页面所有的选项都是下拉选择的,那么怎么找变量呢? 其余语法如下所示:

it "edits person job and redirects to index" do
    expect(p = FactoryGirl.create(:person)).to be_valid()
    expect(j = FactoryGirl.create(:job)).to be_valid()
    visit new_job_path
    select p.name, from: "person_job_person_id"
    select p.name, from: "person_job_job_id"
    click_button "create person job"
    page.find("tr", p).find("a.tick").click
end

找不到要点击的p?

如果你想点击p元素,你可以很容易地用css选择器xpath:

find(:css, 'the css selector of your p element').click


find(:xpath, 'the xpath of your p element').click

例如

find(:css, 'body > div.layout > div > button').click

如果您正在使用 Chrome,您可以通过检查您的元素轻松找到它们,右键单击他的代码并复制 css 选择器xpath.