python解决Chrome“选择证书”弹框问题

python解决Chrome“选择证书”弹框问题

在这里插入图片描述

解决该问题的思路:

由于该弹框是由浏览器进程控制的,如果使用一个线程是无法解决该问题的。解决该问题需要启用一个新的线程,该线程用于点击确认按钮。由于该弹窗是浏览器本身弹窗,应用程序本身是无法控制该弹窗,因此需要使用一些其他方法,类似于按键精灵东西,来点击确认。

实现点击确认方法

方法一:使用VBS+Python

第一步,准备循环点击Enter按钮的vbs脚本enter.vbs,脚本内容如下:

Set WshShell=WScript.CreateObject("WScript.Shell")
For i=1 To 2
WshShell.SendKeys "{enter}"
WScript.Sleep 1000
Next

第二步,写一个调用该脚本的python方法。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author  : WEL
# @Email   : langhuang521@163.com
import subprocess
import time
import threading
from selenium import webdriver 

def enter():
    '''
    用于输入enter键,关闭弹出按钮(按默认选项值)
    '''
    time.sleep(5)
    subprocess.call("cscript enter.vbs")
    
def open_baidu():
    '''
    打开百度页面
    '''
	browser = webdriver.Chrome()
	browser.get("https://www.baidu.com")

if __name__=="__main__":
	thre = threading.Thread(target=enter)
    runt = threading.Thread(target=open_baidu)
    runt.start()
    thre.start()

上方代码是完整的调用程序,vbs脚本和python脚本处于同级目录。执行python脚本时,后台会启动一个cscript进程用于点击enter按键操作,这时候鼠标要聚焦在浏览器上,这样enter操作才对弹框有效,所以这时候要估计好鼠标点击次数和循环时长

该方法缺点是启动cscript时间过长且只能在window环境有效。

第二种方法:使用python的pynput模块

第一步,准备python脚本input_enter.py用于鼠标点击:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author  : WEL
# @Email   : langhuang521@163.com
'''
该脚本用于输入enter键,关闭弹出按钮(按默认选项值)
'''
from pynput.keyboard import Key,Controller
import time

for i in range(5):
    time.sleep(3)
    control=Controller()
    control.press(Key.enter)
    control.release(Key.enter)

第二步,写一个调用该脚本的python方法。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author  : WEL
# @Email   : langhuang521@163.com
import subprocess
import time
import threading
from selenium import webdriver 

def enter():
    '''
    用于输入enter键,关闭弹出按钮(按默认选项值)
    '''
    time.sleep(5)
    subprocess.call("python input_enter.py")
    
def open_baidu():
    '''
    打开百度页面
    '''
	browser = webdriver.Chrome()
	browser.get("https://www.baidu.com")

if __name__=="__main__":
	thre = threading.Thread(target=enter)
    runt = threading.Thread(target=open_baidu)
    runt.start()
    thre.start()

上方代码是完整的调用程序,vbs脚本和python脚本处于同级目录。执行python脚本时,后台会运行input_enter.py脚本用于点击enter按键操作,这时候鼠标要聚焦在浏览器上,这样enter操作才对弹框有效,所以这时候要估计好鼠标点击次数和循环时长该方法比vbs速度快且平台移植性好。推荐使用该方法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WEL测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值