我是靠谱客的博主 虚拟画笔,最近开发中收集的这篇文章主要介绍python selenium翻页_Python+Selenium学习--分页处理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

场景

我们在测试一个web 应用时,经常出现翻页的情况,下面介绍翻页场景

代码

#!/usr/bin/env python

# -*- codinfg:utf-8 -*-

'''

@author: Jeff LEE

@file: 翻页.py

@time: 2018-09-26 11:14

@desc:

'''

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

import time

driver = webdriver.Firefox()

#添加智能等待

driver.implicitly_wait(10)

driver.get('https://www.baidu.com/')

driver.find_element_by_id('kw').send_keys('uniquefu')

driver.find_element_by_id('su').click()

page = driver.find_element_by_id('page')

pages = page.find_elements_by_tag_name('a') #查找所有翻页跳转链接

time.sleep(5)

js = 'document.documentElement.scrollTop=10000'

total = 0 #页面数

is_next_page = True #存在下一页

page_num = 0 #要点击的页面号

#往后翻页

while page_num <10: #也可以通过is_next_page进行判断循环

driver.execute_script(js)

page_num = page_num + 1 #设置页号为下一页

total = page_num #记录页面数

value=str(page_num)

try:

#查找指定页面

xpath= "//div[@id='page']/a[contains(@href,'pn=%s')]" %value

print(xpath)

one_page = driver.find_element_by_xpath(xpath)

one_page.click()

time.sleep(1)

driver.execute_script(js)

time.sleep(1)

except:

print('no next page')

is_next_page = False

total = total - 1

break

#往前翻页

while total >= 0:

driver.execute_script(js)

try:

total = total -1

value = str(total)

xpath = "//div[@id='page']/a[contains(@href,'pn=%s')]" % value

print(xpath)

one_page = driver.find_element_by_xpath(xpath)

one_page.click()

time.sleep(1)

driver.execute_script(js)

time.sleep(1)

except:

print('no pre page')

break;

time.sleep(3)

driver.quit()

遇到问题:

selenium.common.exceptions.StaleElementReferenceException: Message: u'Element not found in the cache - perhaps the page has changed since it was looked up' ; Stacktrace:

即在cache中找不到元素,可能是在元素被找到之后页面变换了。 这就说明,当前页面发生跳转之后,存在cache中的与这个页面相关的元素也被清空了,因此跳转后需要重新获取下一个页面翻页链接,然后点击。

备注:

对于类型博客类型的翻页不需要那么麻烦,因为翻页后页面链接不会发生变化

最后

以上就是虚拟画笔为你收集整理的python selenium翻页_Python+Selenium学习--分页处理的全部内容,希望文章能够帮你解决python selenium翻页_Python+Selenium学习--分页处理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部