python selenium login func

2021-05-11  本文已影响0人  王国的荣耀

背景:

  1. web端的sig 已经破解,但web的cookie只有一天的有效期。
  2. 还原cookie生成有点麻烦,故使用selenium模拟登录。

查看chrome version

前置条件:更新chrome到最新版本。

查看chrome version

chrome://version/

# 显示的chrome信息
Google Chrome   90.0.4430.212 (正式版本) (x86_64)
修订版本    e3cd97fc771b893b7fd1879196d1215b622c2bed-refs/branch-heads/4430@{#1429}
操作系统    macOS 版本11.3.1(版号20E241)
JavaScript  V8 9.0.257.29
用户代理    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
命令行 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --origin-trial-disabled-features=SecurePaymentConfirmation --flag-switches-begin --flag-switches-end

查看chromedriverb版本
chromedriver version list

下载chromedriverb版本

http://chromedriver.storage.googleapis.com/index.html?path=90.0.4430.24/

webdriver 无界面设置

 options = webdriver.ChromeOptions()
 # 添加无界面参数
 options.add_argument('--headless')

模拟登录过程

  1. 初始化webdriver
  2. 请求网页
  3. 定位元素;可通过id、class或者xpath等。比如driver.find_element_by_xpath。
  4. 输入账号和密码
  5. 如果有验证码的,破解验证码等。

模拟登录遇到的问题

判定平台类型

def get_platform():
    platform_ = platform.system()
    is_win = is_linux = is_mac = False
    if platform_ == "Windows":
        is_win = True
    if platform_ == "Linux":
        is_linux = True
    if platform_ == "Darwin":
        is_mac = True
    return [is_win, is_linux, is_mac]

DeprecationWarning: use options instead of chrome_options

from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(options=chrome_options)
上一篇下一篇

猜你喜欢

热点阅读