使用python我尝试使用凭据提供程序在连接到网站时使用selenium进行自动GUI测试时提供凭据。我找到了以下page,它解释了如何做到这一点,可能是为了JAVA:
DefaultCredentialsProvider
我正在尝试pythonize,但我遇到了问题,而且我找不到合适的类名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)
运行此脚本时出错:
{{1}}
如何解决?或者如何做那个链接中解释的类似的事情?也许有一种完全不同的方法来提供身份验证以打开用于selenium自动GUI测试的网页?
P.S:身份验证将是测试本身的重要部分。以不同用户身份登录并检查访问权限......
答案 0 :(得分:1)
第1步
对于此要求,请使用keyring
import keyring
keyring.set_password("https://my.sharepoint.come", "username", "password")
在此之后,凭据将存储在凭据管理器下以进行自动登录,您可以在命令提示符中运行此 control /name Microsoft.CredentialManager
命令来获取它:
新添加的凭据将显示在&#34; Generic Credentials&#34;
下甚至在编写代码之前,您可以手动测试它。
第2步
完成此操作后,您需要设置首选项 Firefox将你的网址保存在
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)
答案 1 :(得分:0)
你能说出哪一行是12吗? 我不确定你的超级行,就像在this示例中的构造函数的python继承一样。
答案 2 :(得分:0)
DefaultCredentialsProvider附带Java HtmlUnit,而不是webdriver。所以你无法在webdriver下找到它(无论是在Java webdriver中,还是在Python webdriver中,也不是在webdriver中)
请查看此参考:How do I handle authentication with the HtmlUnitDriver using Selenium WebDriver?
你能检查一下DefaultCredentialsProvider是否有类似的python计数器部分。否则,答案是:python中没有DefaultCredentialsProvider。
也许您应该寻找其他身份验证解决方案,例如: Authentication with selenium (Python)