使用 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
命令来获取它:
新添加的凭据将显示在“通用凭据”下
此外,甚至在编写代码之前,您可以手动测试它。
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)
我是一名优秀的程序员,十分优秀!