240
我爱毛绒绒~~~~~~~

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()
posted @ 2024-01-23 16:39  水开白  阅读(2)  评论(0编辑  收藏  举报