Selenium自动化实例
操作下拉问题
这两篇主要是解决同一个问题:浏览器操作下拉问题
第一篇下拉显示更多内容
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
thepaper_dict = {}
web = webdriver.Chrome(service=Service('chromedriver.exe'))
web.implicitly_wait(10)
web.get('https://www.thepaper.cn')
time.sleep(5)
web.maximize_window()
time.sleep(5)
web.find_element(By.XPATH,'//*[@id="navMenu"]/ul/li[5]/a').click()
time.sleep(10)
'''重复下拉,尽可能多的获取内容'''
for i in range(5):
web.execute_script('window.scrollTo(0,3500)')
time.sleep(5)
tes_list = web.find_elements(By.CLASS_NAME,"small_toplink__GmZhY")
for i in tes_list:
title = i.find_element(By.TAG_NAME,'h2').text
url =i.find_element(By.TAG_NAME,'a').get_attribute('href')
thepaper_dict.update({title:url})
web.close()
第二篇:微信读书刷时长,下拉阅读,点击下一章
test.js文件
{ let he=setInterval(()=>{
document.documentElement.scrollTop+=150
if (document.documentElement.scrollTop>=(document.documentElement.scrollHeight - window.innerHeight)){
clearInterval(he);
console.log("停止")
}
},20000)
}
python文件
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
readers = webdriver.Chrome(service=Service('./chromedriver.exe'))
readers.implicitly_wait(5)
###登录
readers.get('https://weread.qq.com/web/reader/c4632be05af26cc46617b13')
readers.maximize_window()
time.sleep(5)
readers.find_element(By.XPATH,'//*[@id="routerView"]/div/div[1]/div[2]/div[2]/button').click()
time.sleep(20)
count =0
with open('test.js','r',encoding='utf-8') as f: ###打开js文件
jstest = f.read()
while count < 100:
time.sleep(10)
readers.execute_script(jstest) ###我直接写js脚本报错了,所以这样写
time.sleep(5)
readers.find_element(By.CLASS_NAME,"readerFooter_button").click()
time.sleep(10)
count+=1
f.close()
readers.close()