只要有更多内容要显示,请向下滚动页面
Watir scroll down the page as long as there is more content to show
我想向下滚动页面,只要有更多内容可以显示。
例如,当您在 Instagram 上单击关注者时,会弹出一个对话框 window,只要有更多关注者可显示,它就会在您向下滚动时加载更多关注者。
我可以用困难的方式来做到这一点,比如获取关注者数量,然后在我向下滚动时计算关注者数量,当他们等于时停止滚动到那里。
但是我想问问你有没有更好的办法
您可以通过比较其 scrollTop 和 scrollHeight 来检查可滚动元素是否位于底部。
以下作品:
scrollable = browser.div(class: 'j6cq2') # div with overflow-y=scroll
until browser.execute_script('return arguments[0].scrollTop + arguments[0].clientHeight >= arguments[0].scrollHeight', scrollable) do
browser.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', scrollable)
sleep(1)
end
请注意,我没有时间找到比使用#sleep 更好的解决方案。但是,希望这能给你一个想法。
我想向下滚动页面,只要有更多内容可以显示。
例如,当您在 Instagram 上单击关注者时,会弹出一个对话框 window,只要有更多关注者可显示,它就会在您向下滚动时加载更多关注者。
我可以用困难的方式来做到这一点,比如获取关注者数量,然后在我向下滚动时计算关注者数量,当他们等于时停止滚动到那里。
但是我想问问你有没有更好的办法
您可以通过比较其 scrollTop 和 scrollHeight 来检查可滚动元素是否位于底部。
以下作品:
scrollable = browser.div(class: 'j6cq2') # div with overflow-y=scroll
until browser.execute_script('return arguments[0].scrollTop + arguments[0].clientHeight >= arguments[0].scrollHeight', scrollable) do
browser.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', scrollable)
sleep(1)
end
请注意,我没有时间找到比使用#sleep 更好的解决方案。但是,希望这能给你一个想法。