如何将selenium中的凭证提供程序与python一起使用?

2024-10-03 06:30:36 发布

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

在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对应的类名:

^{pr2}$

运行此脚本时出错:

  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测试打开一个网页?在

注:认证将是测试本身必不可少的一部分。以不同用户身份登录并检查访问权限。。。在


Tags: client网站seleniumpage提供者guijavaprovider
3条回答

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:

^{pr2}$

DefaultCredentialsProvider附带Java HtmlUnit,而不是webdriver。因此,您无法在webdriver下找到它(无论是在Java webdriver、Python webdriver还是etc webdriver中)

检查此引用:How do I handle authentication with the HtmlUnitDriver using Selenium WebDriver?

你能检查一下DefaultCredentialsProvider是否有类似的python计数器部分。否则,答案是:python中没有DefaultCredentialsProvider。在

也许您应该寻找其他身份验证解决方案,例如: Authentication with selenium (Python)

你能指出哪条线是12吗? 我不确定您的super行,因为在python中,构造函数的继承类似于this示例。在

相关问题 更多 >