gpt4 book ai didi

javascript - 如何检测视口(viewport)中是否存在元素? ( capybara , ruby )

转载 作者:数据小太阳 更新时间:2023-10-29 08:57:11 25 4
gpt4 key购买 nike

我有一个检查页脚可见性的步骤

And (/^the footer appears$/) do
within("div.footer") do
assert_selector "a", :text=> "About"
...
end
end

基本上,我加载页面并滚动到底部然后执行此检查,但我也注意到无需滚动到底部即可执行此步骤。我做了一些测试,发现这一步只检查整个页面的可见性。它不检查视口(viewport)内的可见性。

我希望只有当元素在视口(viewport)内时才通过检查。如果没有 Rspec 而仅使用 capybara/ruby/js 这可能吗?

最佳答案

您可以使用#evaluate_javascript 来检查这一点。类似的东西

in_view = evaluate_script("(function(el) {
var rect = el.getBoundingClientRect();
return (
rect.top >= 0 && rect.left >= 0 &&
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
rect.right <= (window.innerWidth || document.documentElement.clientWidth)
)
})(arguments[0]);", find('div.footer'))
# assert that in_view is true, or whatever you want.

关于javascript - 如何检测视口(viewport)中是否存在元素? ( capybara , ruby ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49578880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com