如何使用page.find使用rspec测试查找变量

时间:2015-12-10 12:58:43

标签: ruby-on-rails testing rspec-rails

我有一个测试用例,我的大多数其他页面至少有一个只是直接文本的字段,可以使用以下命令找到:

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?

1 个答案:

答案 0 :(得分:1)

如果您想点击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 < /强>