我使用selenium-webdriver
抓取网站。当浏览器点击"下一步"按钮,下一页加载,但当我尝试找到我想要的元素时,驱动程序打印上一页的内容。
这是我的剧本:
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :firefox
url = 'http://www.airforwarders.org/companies'
page = driver.navigate.to(url)
driver.find_elements(:css=>'.item_main').each{|div|
puts div.text
}
paginationToolbar = driver.find_element(:css=>'.pagination-toolbar')
paginationToolbar.find_elements(:css=>'.btn')[-2].click # Clicking the "next" button
driver.find_elements(:css=>'.item_main').each{|div|
puts div.text # This shows the same stuff from the previous loop
}
如果我可以从新页面获取内容,这将没有问题。我该怎么做?
答案 0 :(得分:0)
如果您确定,Selenium点击了按钮,下一页已加载,那么我认为您应该在点击后添加sleep 1
。
答案 1 :(得分:0)
点击动作后,可能ajax没有完成。 在进行其他操作之前,请尝试等待1-3秒。