3

我在 Linux 上使用带有 Java 的 WebDriver (Selenium2)。我正在使用 WebDriver 自动填写表单并提交。我遇到了 htaccess 站点的问题,即我无法通过 WebDriver 访问 htaccess 站点。

任何人都可以在这方面帮助我吗?

在此先感谢, 苏尼尔

4

5 回答 5

12

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 版本的注册表项。

于 2010-01-18T10:42:17.263 回答
1

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

于 2010-01-18T12:43:58.447 回答
0

在 WebDriver(或 Selenium)的浏览器完全支持此功能之前,替代选项是集成 w/ 桌面 GUI 自动化工具,其中桌面 GUI 工具将自动化 HTTP 身份验证部分。如果您在谷歌上搜索“Selenium AutoIt”等内容,您可能会找到一些示例或文件下载、上传。

对于跨平台解决方案,将 AutoIt 替换为 Sikuli 或类似的东西。

于 2011-07-24T04:48:01.127 回答
0

Selenium 常见问题解答中的解决方案不起作用 - FireFox 现在添加了一个提示,以确认用户要进行身份验证,而这对我来说没有明显的 Selenium 任务。

“您即将使用用户名“myuser”登录站点“my.domain.com”

最便宜的解决方案是使用 selenium 会话使用的浏览器配置文件手动输入一次凭据,然后让浏览器保存它们。(我在测试中做了这个)还添加了配置文件整数值 network.http.phishy-userpass-length;255

另一个问题向我指出了以编程方式执行此操作的方法,即使用 Selenium 2

于 2012-04-18T19:06:42.470 回答
0

我正在使用它,它对我有用。

public void login(String username, String password){
        WebDriver driver = getDriver();
        String URL = "http://" + username + ":" + password + "@" + "link";
        driver.get(URL);
        driver.manage().window().maximize();
    }
于 2014-07-28T11:34:28.197 回答