我在 Linux 上使用带有 Java 的 WebDriver (Selenium2)。我正在使用 WebDriver 自动填写表单并提交。我遇到了 htaccess 站点的问题,即我无法通过 WebDriver 访问 htaccess 站点。
任何人都可以在这方面帮助我吗?
在此先感谢, 苏尼尔
我在 Linux 上使用带有 Java 的 WebDriver (Selenium2)。我正在使用 WebDriver 自动填写表单并提交。我遇到了 htaccess 站点的问题,即我无法通过 WebDriver 访问 htaccess 站点。
任何人都可以在这方面帮助我吗?
在此先感谢, 苏尼尔
从Selenium 常见问题解答(目前已关闭):
如何使用 Selenium 登录到需要 HTTP 基本身份验证的站点(浏览器会在其中显示模式对话框,要求提供凭据)?
在 URL 中使用用户名和密码,如 RFC 1738 中所述:测试类型
open http://myusername:myuserpassword@myexample.com/blah/blah/blah请注意,在 Internet Explorer 上这不起作用,因为 Microsoft 已禁用 IE 中 URL 中的用户名/密码。但是,您可以通过修改注册表重新添加该功能,如链接的知识库文章中所述。在 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE 中将“iexplore.exe”DWORD 设置为 0。
如果您不想自己修改注册表,您可以随时使用 Selenium Remote Control,它会自动为您设置 0.9.2 版本的注册表项。
There is an outstanding issue for WebDriver to support basic and digest HTTP authentication. If you want to be notified of changes I suggest voting for the issue at http://code.google.com/p/selenium/issues/detail?id=34
在 WebDriver(或 Selenium)的浏览器完全支持此功能之前,替代选项是集成 w/ 桌面 GUI 自动化工具,其中桌面 GUI 工具将自动化 HTTP 身份验证部分。如果您在谷歌上搜索“Selenium AutoIt”等内容,您可能会找到一些示例或文件下载、上传。
对于跨平台解决方案,将 AutoIt 替换为 Sikuli 或类似的东西。
Selenium 常见问题解答中的解决方案不起作用 - FireFox 现在添加了一个提示,以确认用户要进行身份验证,而这对我来说没有明显的 Selenium 任务。
“您即将使用用户名“myuser”登录站点“my.domain.com”
最便宜的解决方案是使用 selenium 会话使用的浏览器配置文件手动输入一次凭据,然后让浏览器保存它们。(我在测试中做了这个)还添加了配置文件整数值 network.http.phishy-userpass-length;255
另一个问题向我指出了以编程方式执行此操作的方法,即使用 Selenium 2
我正在使用它,它对我有用。
public void login(String username, String password){
WebDriver driver = getDriver();
String URL = "http://" + username + ":" + password + "@" + "link";
driver.get(URL);
driver.manage().window().maximize();
}