处理“选择数字证书”硒铬的webdriver(Handling 'choose a digi

2019-08-17 01:57发布

当我打开硒页面的webdriver我得到了镀铬对话框“选择证书”。 默认证书是正确的,所以我只需要单击OK按钮。 但我有问题,与此有关。 我有Python代码:

drv = webdriver.Chrome()   
drv.get("https://example.com/login")

之后,我想做的事情是这样的:

drv.switch_to_alert().accept()

要么

drv.switch_to_alert().send_keys(Keys.TAB)
drv.switch_to_alert().send_keys(Keys.SPACE)

问题是,该代码将停止线drv.get执行(“ https://example.com/login ”)。 webdriver的等待页面加载。 而该行之前没有任何镀铬对话框。

我该如何处理呢?

Answer 1:

你将不得不使用类似的AutoIt:

http://www.autoitscript.com/site/autoit/

你为什么问? 这是一个操作系统对话框,硒不和可能永远也不会处理,所以你不得不转向其他解决方案(在C#中,你应该使用本地的Win32 API的方法来点击按钮为例)。



Answer 2:

这里处理任何事情之前,下面加那么它不会,只要你浏览/ triggert证书弹出冻结。 remeber到稍后添加正确的WAITTIME。

 getDriver().manage().timeouts().pageLoadTimeout(1000, TimeUnit.MILLISECONDS); 

在此之后,那么你可以尝试使用键盘或AutoIt的一切。



Answer 3:

证书由操作系统,而不是浏览器进行管理。 删除所有但是从你的浏览器证书存储了必要的证书,然后配置浏览器的时候只有一个证书是目前自动选择证书。 您还可以创建一个浏览器配置文件,让你的程序启动此配置文件或避免通过HTTPS测试。



文章来源: Handling 'choose a digital certificate' with selenium webdriver chrome