如果在页面上输入文本框可见且可点击,我需要在Capybara中进行测试。我知道如何测试可见性,但我找不到像.clickable
这样的方法或者那种精神的东西。如何在Capybara做到这一点?
答案 0 :(得分:7)
听起来OP的需求已经得到满足,但是对于未来的探索者来说,这里有一些工具可以判断某些东西是否可点击。
测试是否可以点击该物品(Rspec&& Capybara):
it "is clickable" do
expect{ find('.your_selector').click }
.not_to raise_error(Capybara::Poltergeist::MouseEventFailed)
end
it "isn't clickable" do
expect{ find('.your_selector').click }
.to raise_error(Capybara::Poltergeist::MouseEventFailed)
end
如果可能,请点击它,如果没有,请按照Joe Susnick的回答做其他事情:
clickable = expect{ find('.your_selector').click }.not_to raise_error(Capybara::Poltergeist::MouseEventFailed)
if clickable
plan_a
else
plan_b
end
答案 1 :(得分:1)
将此作为答案,来自对原始问题的评论。
您不需要测试可点击性(即在点击时让输入字段闪烁),因为我认为这取决于浏览器。您无需执行任何操作即可获得该功能。因此,如果它是可见的,并且输入字段,则单击它将获得该结果。否则,如果它不可见,则无论如何都无法点击,所以你没事。我认为您不需要测试任何有关可点击性的信息,只需要查看可见性。
答案 2 :(得分:1)
元素可以“可见”而不可点击。我现在正在努力寻找一种解决方法,用于选择一个不透明停留背后的按钮。我希望能说出类似的话:
if find_button("Change Location").visible?
click it
else
something else
end
我还没有找到答案,这不是一个hacky解决方法所以任何建议都会有所帮助。而不是解雇问题