Python Selenium PhantomJS登录对话框

2024-09-30 18:29:55 发布

您现在位置:Python中文网/ 问答频道 /正文

请注意,这个问题是Python 3.5.2,只接受Python的答案。除非这可以用Java来处理?将过程自动化作为内部项目的一部分。使用IE webdriver一切正常,但phantomJSweb驱动程序(由于功能有限,这是预期的)。但是,需要一个变通办法/解决方案。在

打开内部站点时,Windows Security login dialog box出现,提示输入用户名和密码,然后按“确定”。使用IE web driver,可以很好地处理:

loginAlert = driver.switch_to_alert()
loginAlert.authenticate(username, password)

javascript:

^{pr2}$

在加载给出提示的页面之前运行,似乎无法确认phantom或IE的登录警报。即使确认,也不会输入登录详细信息。如前所述,它是来自浏览器的Windows安全提示,而不是一个元素。在

登录后,页面将重新加载ASP.NET_SessionIdCookie,会话结束后该Cookie将过期。我尝试过通过IE登录,然后将cookie添加到Phantom中,但它似乎与域不匹配。在

我试过使用:

driver.save_screenshot(filename) to see what's happening in phantom

它适用于IE driver,但是对于PhantomJS,只保存一个透明图像。整个http://username:pass@site.com的事情对IE或幻影驱动都不起作用。完成后,它无法加载/使用URL。在

如何处理或处理Windows安全登录对话框?我试着寻找替代品,比如pyvirtualdisplay,但是没有找到关于如何在windows上使用Python 3的信息。在

我也尝试过设置phantomjs所需的功能自定义头身份验证,但这似乎也没什么用。在

我也尝试过使用ActionChains,但是当警报出现时它们就不起作用了(在IE或幻影驱动程序中)。抛出一个UnexpectedAlertPresentException,即使它被捕获,并且您试图执行操作,一旦被捕获,警报似乎关闭。在


Tags: to答案功能过程windowsdriver驱动程序username
1条回答
网友
1楼 · 发布于 2024-09-30 18:29:55

我的错!在

username:pass@domain.comIE webdriver-it did work in the PhantomJS web driver.中不起作用

然而,该网站的浏览器兼容性有限-它是IE特有的。在

PhantomJS基于页面源代码的比较,似乎与Chrome/Firefox处理站点的方式相同。在

因此,I am trying to find a way to make the current IE driver invisible / hidden.

我发现:

headless-selenium-for-win using Python

然而,尽管这里的用户说他们已经成功了,但是当我尝试initialize the driver, it just hangs, the code doesn't proceed and no error messages are provided.

再问一个关于这个的问题。在

相关问题 更多 >