水豚找到 aria-pressed 的元素值
Capybara find element value of aria-pressed
我想在水豚中为以下代码获取 aria-pressed 的值:
<button aria-pressed="true" class="btn btn-default active" data-active="true" data-toggle="button" id="grid-filter-invited-button" type="button">
Invited
</button>
这是一个按钮...当我点击它时,它的 aria-pressed 值在 true 和 false 之间切换。我想要 "aria-pressed" 的值。有人可以帮忙吗?
节点有一个 [] 方法 returns 属性值。
capybara_element['attribute_name']
允许访问 Capybara
中的元素属性
aria-pressed = page.find('button#grid-filter-invited-button')['aria-pressed']
puts aria-pressed
#=> "true"
我假设您想检查该值是否已更改。您应该能够使用 xpath 表达式断言这一点。由于它是一个布尔值,您可以通过检查结果是 nil
或 empty
.
来获得一个值
类似于:
page.all(
:xpath,
"//button[@id='grid-filter-invited-button'][@aria-pressed='true']"
)
或者期望它被按下:
expect(page).to have_selector(
:xpath,
"//button[@id='grid-filter-invited-button'][@aria-pressed='true']"
)
另外,看看这个对类似问题的回答。您也可以使用 css 选择器来实现:RSpec + Capybara: How do I test a Bootstrap progress bar
我想在水豚中为以下代码获取 aria-pressed 的值:
<button aria-pressed="true" class="btn btn-default active" data-active="true" data-toggle="button" id="grid-filter-invited-button" type="button">
Invited
</button>
这是一个按钮...当我点击它时,它的 aria-pressed 值在 true 和 false 之间切换。我想要 "aria-pressed" 的值。有人可以帮忙吗?
节点有一个 [] 方法 returns 属性值。
capybara_element['attribute_name']
允许访问 Capybara
aria-pressed = page.find('button#grid-filter-invited-button')['aria-pressed']
puts aria-pressed
#=> "true"
我假设您想检查该值是否已更改。您应该能够使用 xpath 表达式断言这一点。由于它是一个布尔值,您可以通过检查结果是 nil
或 empty
.
类似于:
page.all(
:xpath,
"//button[@id='grid-filter-invited-button'][@aria-pressed='true']"
)
或者期望它被按下:
expect(page).to have_selector(
:xpath,
"//button[@id='grid-filter-invited-button'][@aria-pressed='true']"
)
另外,看看这个对类似问题的回答。您也可以使用 css 选择器来实现:RSpec + Capybara: How do I test a Bootstrap progress bar