如何处理Selenium python中弹出的证书操作系统?我尝试了pyAutoGUI,但是没有用

时间:2019-08-06 15:46:28

标签: python selenium google-chrome certificate

我在Python上使用Selenium来浏览Google-Chrome。 在我的应用程序中的某个时候会弹出SSL证书(假设在这里,我有合法的证书,我只需要按“确定”即可)。如果我理解正确,它不是浏览器的弹出窗口,而是操作系统的弹出窗口。因此,硒无法处理。为了解决这个问题,我尝试了pyautogui,它应该可以处理OS弹出窗口。

from selenium import webdriver
import pyautogui

driver = webdriver.Chrome() 
driver.get(url)  # fetching the page
res = driver.\ 
    execute_script("return document.documentElement.outerHTML")

这时将弹出“证书”窗口。我尝试使用pyautogui单击它:

pyautogui.moveTo(100, 100, duration = 0.5) 

但是问题在于,当证书弹出窗口出现时,脚本停止并且pyautogui无法移动鼠标来单击证书。当我在窗口上手动单击“确定”时,pyautogui开始工作。但是我需要它来自动单击“确定”。 有人知道如何处理此脚本冻结吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

设法用两个独立的线程解决了这个问题(感谢@ wizzwizz4的想法):

from selenium import webdriver
import pyautogui

def manage_os_popup():
    time.sleep(5)
    pyautogui.moveTo(100, 100, duration = 0.5)
    time.sleep(1)
    pyautogui.click()

my_thread = threading.Thread(target = manage_os_popup)
my_thread.start()

driver = webdriver.Chrome() 
driver.get(url)
res = driver.\ 
    execute_script("return document.documentElement.outerHTML")