分页处理

对于web 页面上的分页功能,我们一般做做以下操作:

  • 获取总页数
  • 翻页操作(上一页,下一页)

对于有些分页功能提供上一页,下一页按钮,以及可以输入具体页面数跳转功能不在本例的讨论范围。

HTML代码:

....
<select id="pageElm_a74e_ce2c" class="yem" action="page" data-page="5">
      <option value="1">1/5</option>
      <option value="2">2/5</option>
      <option value="3">3/5</option>
      <option value="4">4/5</option>
      <option value="5">5/5</option>
</select>
....

上面代码为分页功能的代码片断,显示效果如下:

              图3.13

 

代码示例:

#coding=utf-8

from selenium import webdriver
from time import sleep

driver = webdriver.Firefox()
driver.get("http://passport.kuaibo.com/login/?referrer=http%3A%2F%2Fvod.kuaibo.com%2F%3Fly%3Ddefault")

 

#登录系统
driver.find_element_by_id("user_name").clear()
driver.find_element_by_id("user_name").send_keys("username")
driver.find_element_by_id("user_pwd").clear()
driver.find_element_by_id("user_pwd").send_keys("password")
driver.find_element_by_id("dl_an_submit").click()
sleep(2)

#获取所有分页的数量,并打印
total_pages=len(driver.find_element_by_tag_name("select").find_elements_by_tag_name("option"))
print "total page is %s" %(total_pages)
sleep(3)

#再次获取所分页,并执行循环翻页操作
pages=driver.find_element_by_tag_name("select").find_elements_by_tag_name("option")
for page in pages:
     page.click()
     sleep(2)


sleep(3)

driver.quit()

len()方法在定位一组对象有时已经用过,用于获取对象的个数。


这里同样用到了二次定位,只是第二次定位用的是find_elements 方法,获取的是一组元素。通过上面的脚本可以看到,我们第一次获取到一组元素后,打印了所有分页的个数。第二次获取所有分页后, 通过for 循环来翻阅每一页,每翻一页休眠2 秒,当然,我们也可以在翻页后对列表的文件做更多操作。

posted on 2016-12-27 17:22  chenzx0918  阅读(139)  评论(0编辑  收藏  举报

导航