- 场景如下:
- 使用
selenium
处理网页时, 碰到了跳出证书的情况 - 如下图 所见:
- 当使用
get
请求网页的时候, 由于网页一直处于跳出状态, 无法使用页面内容来进行操作, 只能卡死在这一步 - 考虑到只需要在当前页面用鼠标点击或者键盘回车即可;
- 但是
selenium
单独无法完成, 由于程序是从上往下运行, 所以考虑引入多线程的特性, 在get
的同时, 使用多线程运行键盘操作 - 我的尝试如下:
- 使用到的包:
selenium, pynput, threading, time
- 使用
from selenium import webdriver
from pynput.keyboard import Key, Controller
import threading
import time
url = "https://xxxxxx.xxxxxx.com/xxxxxx/ui?pageId=2032082&fromUrl=L2Vwb3J0YWwvdWk/cGFnZUlkPTIwMjY3NDM="
b = webdriver.Chrome()
k = Controller()
def press_enter():
time.sleep(3)
k.press(Key.enter)
k.release(Key.enter)
t = threading.Thread(target=press_enter)
# 守护线程, 把子线程设置为守护线程, 必须在start()之前设置,当主线程结束,子线程也随之结束;
t.setDaemon(True)
t.start()
b.get(url)
-
这个只是我自己的尝试, 上面代码可以封装一下, 可以实现直接进入到下一步的操作;
-
注意这么操作的时候, 必须把打开的网页放到最前面, 这期间不可以进行其他操作, 否则将会出现在其他内容上回车的情况;