这是一个非常具体的问题......但是如果您从不属于Active Directory的计算机上使用Selenium等,并且您被浏览器弹出窗口挫败,我为您提供解决方案。
我将解释问题并链接到一些资源(以及我的其他问题,其中包含更多链接),这些信息通知了解决方案,然后我将发布的更改发布到扩展I&#的示例中34;写"
您通过硒或类似的东西进行自动化或测试...并且auth弹出窗口突然出现!但是这个弹出窗口不是JavaScript,你不需要在你正在测试的机器上保存任何凭据。
如何将身份验证凭据传递给浏览器并阻止弹出窗口发生...但不使用密钥库,浏览器存储或 ghasp 文件?
一旦您知道如何传递数据,那么如何以允许免提认证的方式将值传入浏览器?
答案 0 :(得分:0)
您需要使用浏览器扩展程序。 我的解决方案是针对铬构建的,但对于Firefox和可能边缘,它应该几乎没有变化。
首先,您需要为您的浏览器提供2个API:
虽然两个浏览器API非常相似,但它们确实存在一些显着差异 - 例如Chrome的实施缺少Promises。
如果您将Native Messaging Host设置为发送格式正确的JSON字符串,则只需轮询一次。这意味着您可以使用runtime.sendNativeMessage()
一次通话,并确保您的凭据可以使用。双关语。
下一步,我们需要了解我们应该如何处理webRequest.onAuthRequired
事件。
由于我在Chromium工作,我需要使用无承诺的Chrome API。
chrome.webRequest.onAuthRequired.addListener(
callbackFunctionHere,
{urls:[targetUrls]},
['asyncBlocking'] // --> this line is important, too. Very.
我正在调用我的函数provideCredentials
,因为我是一个盗窃者并使用this来源的示例。寻找异步版本。
示例代码从storage.local
...
chrome.storage.local.get(null, gotCredentials);
我们不希望这样。不。
我们希望通过一次调用sendNativeMessage
获取凭据,以便我们更改这一行。
chrome.runtime.sendNativeMessage(hostName, { text: "Ready" }, gotCredentials);
这就是全部。认真。只要你的主人玩得好,这就是最大的秘密。我甚至不会告诉你我需要多长时间才能找到它!
我的问题与有用的链接: