【发布时间】:2015-01-29 15:11:44
【问题描述】:
我在一个屏蔽社交媒体网站的地方工作,并为那些(少数)有正当商业理由访问它们的人弹出代理登录。由于大多数网站都有 Facebook、Twitter 或类似的链接,因此代理提示出现了很多。当以正常的人工方式浏览时,我只需按 ESC 键即可摆脱代理登录对话框。我怎样才能通过 Selenium 做到这一点?我已经看到很多关于关闭 ALERT 消息或模式对话的帖子和解决方案,但我没有看到任何关于关闭代理登录的内容;只需提供凭据即可绕过它。
任何帮助/提示将不胜感激。谢谢!
规格: 我在 C# 中使用 Selenium 2.44 和 Firefox 驱动程序
(编辑#2:有关此对话的更多信息)
此登录提示来自我们自己的内部代理服务器。我们的代理服务器基本上是在与远程站点进行任何通信之前询问用户是否有权访问请求的站点。只要元素在远程站点上,它就会弹出。因此,例如,如果一个站点有一个 Facebook 和 Twitter 按钮,该按钮从 Facebook 或 Twitter 本身提取按钮,用户将看到两个代理登录提示。虽然页面的其他元素会在等待时加载,但页面加载过程最终会等待任何被自动阻止的元素的响应。
我解决此问题的一种方法是将 Firefox 驱动程序与 NoScript 结合使用,并从白名单中删除所有社交网络链接。这是一种粗略的解决方法,并强制使用一个浏览器。我正在寻找的是一种让 Selenium 简单地通过代码关闭代理登录提示的方法(如果这样做的话)。
(编辑:添加截图示例)
(编辑:添加了 Inspect 的屏幕截图)
【问题讨论】:
-
您好@Jim M,您能否发布“弹出窗口”的屏幕截图以及您希望关闭它的代码行,以便我为您提供更好的答案?
-
Hello @TidusJar - 根据要求添加了屏幕截图。我无法识别代码行 - 它发生在任何链接到我们的内部政策认为“与业务无关”的网站(按钮等)的页面上。
标签: c# selenium proxy automation