gpt4 book ai didi

python - 如何在 python 中使用 selenium 中的凭据提供程序?

转载 作者:太空宇宙 更新时间:2023-11-03 16:41:00 25 4
gpt4 key购买 nike

使用 python,我尝试使用凭据提供程序在连接到网站以使用 selenium 进行自动化 GUI 测试时提供凭据。我发现了以下page这解释了如何做到这一点,可能适用于 JAVA:

@Override
protected WebClient newWebClient() {
WebClient client = super.newWebClient();
DefaultCredentialsProvider provider = new DefaultCredentialsProvider();
provider.addCredentials("username","password");
client.setCredentialsProvider(provider);
return client;
}

我正在尝试 pythonize is,但遇到问题,并且我没有在 DefaultCredentialsProvider 中找到适当的类名:

from selenium import webdriver as original_webdriver

class webdriver(original_webdriver):
def newWebClient(self):
client = super().newWebClient()
provider = DefaultCredentialsProvider()
provider.addCredentials("username","password")
client.setCredentialsProvider(provider)
return client

运行此脚本时的错误是:

  File "C:/Users/adi0341/PycharmProjects/SeleniumTest/tester.py", line 12, in <module>
class webdriver(original_webdriver):
TypeError: module.__init__() takes at most 2 arguments (3 given)

如何解决?或者如何做与该链接中解释的类似的事情?也许有一种完全不同的方法来提供身份验证,以便打开网页进行 selenium 自动化 GUI 测试?

P.S:身份验证将是测试本身的重要组成部分。以不同用户身份登录并检查访问权限...

最佳答案

Step 1

对于此要求,请使用keyring

import keyring
keyring.set_password("https://my.sharepoint.come", "username", "password")

此后,凭据将存储在凭据管理器下以供自动登录,您可以在命令提示符中运行此 control/name Microsoft.CredentialManager 命令来获取它:

enter image description here

新添加的凭据将显示在“通用凭据”下

enter image description here

此外,甚至在编写代码之前,您可以手动测试它。

Step 2

Once you are through with this, you need to set the preference of Firefox to hold your url under network.automatic-ntlm-auth.trusted-uris:

from selenium import webdriver
url = 'http://my.sharepoint.com'
fp = webdriver.FirefoxProfile()
fp.set_preference('network.automatic-ntlm-auth.trusted-uris',url)
driver = webdriver.Firefox(firefox_profile=fp)
driver.get(url)

关于python - 如何在 python 中使用 selenium 中的凭据提供程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36787602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com