如何使用水豚检查特定 html 元素中的 css class 名称?
How to check for a css class name in a specific html element with capybara?
我想测试我的特定 tr
元素是否在我单击单元格时添加了 selected
css class。我想通过其文本来识别特定行,然后单击该行中的一个单元格,然后检查其 css classes.
在整个页面中检查此 css 的代码似乎有效:
row = find(:xpath, "//tr[contains(., 'My Text')]")
cell = find(:xpath, "//tr[contains(., 'My Text')]/td")
expect(page).to_not have_css("tr.selected") # success
cell.click
expect(page).to have_css("tr.selected") # success
...但我想将搜索限制在特定的行对象中。此代码永远找不到我正在寻找的 css,并且总是在最后一个 expect
.
中失败
row = find(:xpath, "//tr[contains(., 'My Text')]")
cell = find(:xpath, "//tr[contains(., 'My Text')]/td")
expect(row).to_not have_css("tr.selected")
cell.click
expect(row).to have_css("tr.selected") # fails
当我查看 click
之后的 row[:class]
时,我在其 class 列表中看到 'selected'。如何正确限制我的测试以仅在我的特定行中查找 .selected
class?
have_css
检查后代,检查你想要的当前元素 match_css
row = find(:xpath, "//tr[contains(., 'My Text')]")
cell = row.find('td')
expect(row).to_not match_css("tr.selected")
cell.click
expect(row).to match_css("tr.selected")
此外,如果您没有特定需要使用 XPath
row = find('tr:not(.selected)', text: 'My Text')
row.find('td').click
expect(row).to match_css('tr.selected')
读起来好多了
我想测试我的特定 tr
元素是否在我单击单元格时添加了 selected
css class。我想通过其文本来识别特定行,然后单击该行中的一个单元格,然后检查其 css classes.
在整个页面中检查此 css 的代码似乎有效:
row = find(:xpath, "//tr[contains(., 'My Text')]")
cell = find(:xpath, "//tr[contains(., 'My Text')]/td")
expect(page).to_not have_css("tr.selected") # success
cell.click
expect(page).to have_css("tr.selected") # success
...但我想将搜索限制在特定的行对象中。此代码永远找不到我正在寻找的 css,并且总是在最后一个 expect
.
row = find(:xpath, "//tr[contains(., 'My Text')]")
cell = find(:xpath, "//tr[contains(., 'My Text')]/td")
expect(row).to_not have_css("tr.selected")
cell.click
expect(row).to have_css("tr.selected") # fails
当我查看 click
之后的 row[:class]
时,我在其 class 列表中看到 'selected'。如何正确限制我的测试以仅在我的特定行中查找 .selected
class?
have_css
检查后代,检查你想要的当前元素 match_css
row = find(:xpath, "//tr[contains(., 'My Text')]")
cell = row.find('td')
expect(row).to_not match_css("tr.selected")
cell.click
expect(row).to match_css("tr.selected")
此外,如果您没有特定需要使用 XPath
row = find('tr:not(.selected)', text: 'My Text')
row.find('td').click
expect(row).to match_css('tr.selected')
读起来好多了