当我使用selenium webdriver打开一个页面时,我会看到一个chrome对话框"Choose certificate“。默认的证书是正确的,所以我只需要点击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正在等待页面加载。在这一行之前,没有chrome对话框。
我该怎么处理呢?
发布于 2013-02-20 17:44:33
你必须使用像AutoIT这样的东西:
http://www.autoitscript.com/site/autoit/
你为什么这么问?这是一个OS对话框,Selenium不会而且可能永远也不会处理它,所以您必须求助于其他解决方案(例如,在C#中,您应该使用本机Win32应用编程接口方法来单击按钮)。
发布于 2015-05-20 08:22:07
证书由操作系统管理,而不是由浏览器管理。从浏览器的证书存储中删除除必要证书之外的所有证书,然后将浏览器配置为在只存在一个证书时自动选择证书。您还可以创建一个浏览器配置文件,并让您的程序启动此配置文件或避免通过HTTPS进行测试。
发布于 2017-08-31 01:24:04
在这里处理任何事情之前,请在下面添加,这样一旦您导航/触发证书弹出窗口,它就不会被冻结。记住稍后添加正确的等待时间。
getDriver().manage().timeouts().pageLoadTimeout(1000, TimeUnit.MILLISECONDS);
在此之后,您可以尝试使用键盘或autoIt。
https://stackoverflow.com/questions/14960084
复制相似问题