当我点击一个指向另一个页面的按钮时,如何获取新页面的内容?

时间:2015-08-25 19:06:55

标签: ruby selenium selenium-webdriver web-scraping

我使用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
}

如果我可以从新页面获取内容,这将没有问题。我该怎么做?

2 个答案:

答案 0 :(得分:0)

如果您确定,Selenium点击了按钮,下一页已加载,那么我认为您应该在点击后添加sleep 1

答案 1 :(得分:0)

点击动作后,可能ajax没有完成。 在进行其他操作之前,请尝试等待1-3秒。