Watir 等待更多帖子加载
Watir wait for more posts load
我要抓取的网站正在使用滚动事件进行延迟加载。 (无限滚动)
我想等待更多帖子加载,但所有帖子都具有相同的 class 名称。所以,我等不及加载具有特定 class 名称的元素。我不想使用 sleep()
方法。
示例代码:
<div class='posts'>
<div class='single-post'></div>
<div class='single-post'></div>
<div class='single-post'></div>
<div class='single-post'></div>
// The following posts appear after scrolling. I want to fetch these posts
<div class='single-post'></div>
<div class='single-post'></div>
<div class='single-post'></div>
<div class='single-post'></div>
</div>
我该如何解决这个问题?是否可以检查此 div 是否有超过 10 个帖子?
想法?
您可以获取 single-post div 的集合以查看是否加载了更多。根据页面的标记,您可以执行以下操作:
browser.divs(class: 'single-post').count
或者,如果 parent 很重要:
browser.div(class: 'posts').divs(class: 'single-post').count
这个可以用来等待帖子数量增加:
# Find the original count
original_count = browser.divs(class: 'single-post').count
# Take an whatever action to trigger the loading of more posts
browser.scroll.to :bottom
# Wait for the count to increase
browser.wait_until do
new_count = browser.divs(class: 'single-post').count
new_count > original_count
end
我要抓取的网站正在使用滚动事件进行延迟加载。 (无限滚动)
我想等待更多帖子加载,但所有帖子都具有相同的 class 名称。所以,我等不及加载具有特定 class 名称的元素。我不想使用 sleep()
方法。
示例代码:
<div class='posts'>
<div class='single-post'></div>
<div class='single-post'></div>
<div class='single-post'></div>
<div class='single-post'></div>
// The following posts appear after scrolling. I want to fetch these posts
<div class='single-post'></div>
<div class='single-post'></div>
<div class='single-post'></div>
<div class='single-post'></div>
</div>
我该如何解决这个问题?是否可以检查此 div 是否有超过 10 个帖子?
想法?
您可以获取 single-post div 的集合以查看是否加载了更多。根据页面的标记,您可以执行以下操作:
browser.divs(class: 'single-post').count
或者,如果 parent 很重要:
browser.div(class: 'posts').divs(class: 'single-post').count
这个可以用来等待帖子数量增加:
# Find the original count
original_count = browser.divs(class: 'single-post').count
# Take an whatever action to trigger the loading of more posts
browser.scroll.to :bottom
# Wait for the count to increase
browser.wait_until do
new_count = browser.divs(class: 'single-post').count
new_count > original_count
end