我的问题:
目前我需要打开一个网站,我需要在Chrome验证窗口中放置用户和密码,但我尝试了我在互联网上找到的唯一替代方案,但没有成功
我试过了:
https://myuser:mypassword@mysite.com
但这并没有解决,因为在这种格式下网站没有打开,更不用使用网址中的凭据进行身份验证
我的筹码:
Python 3 + Selenium 3.3.3 + Chrome 60
答案 0 :(得分:0)
关于python的Idk但是在c#中你可以按如下方式处理它;
var alert = driver.SwitchTo().Alert();
alert.SetAuthenticationCredentials("username", "password");
alert.Accept();
答案 1 :(得分:-1)
您可能需要使用插件,就像我必须这样。 这个question/answer详细介绍了我如何解决Chromium / Chrome中的问题...
这是在python 2.7 中实现的 但是在3.X
中使它起作用不应该有太大的区别您将需要使用浏览器扩展程序。 我的解决方案是针对铬构建的,但对于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);
这就是全部。认真。只要你的主人玩得好,这就是最大的秘密。我甚至不会告诉你我需要多长时间才能找到它!
我的问题与有用的链接: