如何在selenium中使用凭证提供程序与python?

时间:2016-04-22 07:28:35

标签: python selenium

使用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:身份验证将是测试本身的重要部分。以不同用户身份登录并检查访问权限......

3 个答案:

答案 0 :(得分:1)

  

第1步

对于此要求,请使用keyring

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

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

enter image description here

新添加的凭据将显示在&#34; Generic Credentials&#34;

enter image description here

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

  

第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)