试了 helium自动化测试公众号(搜到他家教程多点,不是推广閭 )介绍了两种方法(方法一、方法二),
但是携带cookies一直失败, 最终使用 <driver.get(url)
>在这花费的时间有点久。
import os
import pickle
from helium import *
def read_cookie():
""" 读取 cookies """
if os.path.exists('D:/items/小工具/36739.pickle'):
read_path = open('D:/items/小工具/36739.pickle', 'rb')
tb_cookies = pickle.load(read_path)
return tb_cookies
else:
print('没有发现文件 ! ')
def load_cookie_one():
""" 方法一 """
tb_cookie = read_cookie()
start_chrome('url')
driver = get_driver() # 得到driver
for cookie in tb_cookie:
driver.add_cookie({
"domain": '.shiguangkey.com',
"name": cookie,
"value": tb_cookie[cookie]}, )
driver.get('url')
def load_cookie_two():
""" 方法二 """
tb_cookie = read_cookie()
driver = start_chrome('url')
set_driver(driver) # 这一步好像有点多余,但是公众号上面有这个
for cookie in tb_cookie:
driver.add_cookie({
"domain": '.shiguangkey.com',
"name": cookie,
"value": tb_cookie[cookie]}, )
driver.get('url')
def load_cookie_zero():
""" 方法零 """
tb_cookie = read_cookie() # 获取cookies pickle文件里面
driver = start_chrome('url')
# driver = 等于方法一 driver = get_driver()
for cookie in tb_cookie:
driver.add_cookie({
"domain": '.shiguangkey.com',
"name": cookie,
"value": tb_cookie[cookie]}, )
# refresh() # 使用刷新还是进不了带有cookies网页,主要就是在这一步错了
driver.get('url')
load_cookie_zero()
load_cookie_one()
load_cookie_two()
关于helium与selenium 区别:
Helium 自带 WebDriver,不需要下载、配置浏览器驱动
内嵌页面 iframe 页面元素直接操作,不需要使用 switch_to.frame() 切换 iframe
窗体管理更方便,可以直接使用窗口标题或部分标题内容来切换窗体
隐式等待,针对某个元素执行点击操作,Selenium 如果元素没有出现,脚本会执行失败;而 Helium 默认最多等待10s,等待元素出现后立马执行点击操作
显式等待,Helium 提供更加优雅的 API 来等待页面元素出现
API 更简洁直观,代码量少
由于封装,屏蔽了很多细节,所以它不合适二次开发
目前仅支持 Chrome 和 FireFox 浏览器
版本更新慢、遗留 Bug 及文档少
这段是抄的 AirPython 我就懒得码字了
建议 helium 和 Selenium搭配使用
helium练习记录到此结束了, 欢迎各位 一起交流。