即使在注册表编辑和安全区域更改后,IE 9中的用户名:pwd @ url也不起作用

时间:2014-05-21 20:38:00

标签: selenium selenium-webdriver selenium-rc http-authentication browser-automation

这是一种我需要用来使用Selenium RC自动化我的应用程序的URL, http://user:pwd@somedomainname.domain.com

我的问题:IE 9是否真的支持这种格式?我可以看到它在FF中完美运行。 这在IE中与webdriverobject.get("url")方法相同,但在RC中会发生什么?

我做的事情要解决

  1. 更改与所有区域相同的安全设置。
  2. 在regedit中将iexplore添加到0。 MS fixit也无法正常工作。
  3. 用了近一天的谷歌搜索解决方案。
  4. 没有任何效果。

    堆栈跟踪

      

    com.thoughtworks.selenium.SeleniumException:无法导航到http://demo:demo@snarain0d1.ptcnet.ptc.com:28000/Windchill/app/?forceTrail=true。这通常意味着对COM方法IWebBrowser2 :: Navigate2()的调用失败。 (警告:服务器未提供任何堆栈跟踪信息)   命令持续时间或超时:50毫秒

         

    构建信息:版本:'未知',修订版:'未知',时间:'未知'

         

    系统信息:主机:'SNARAIN0D1',ip:'132.253.12.169',os.name:'Windows 7',os.arch:'amd64',os.version:'6.1',java.version:' 1.7.0_55'

         

    会话ID:7790e5d1-daaf-4c1f-b359-672d2104b13b

         

    驱动程序信息:org.openqa.selenium.ie.InternetExplorerDriver

         

    功能[{platform = WINDOWS,javascriptEnabled = true,elementScrollBehavior = 0,

1 个答案:

答案 0 :(得分:2)

Internet Explorer不支持用户名& URL中的密码。 请参阅http://support.microsoft.com/kb/834489

要在IE中处理身份验证弹出窗口,您必须使用第三方工具,如AutoIt或Robot类。我使用java Robot类成功地尝试了它:

driver.get("http://www.test.com");
StringSelection stringSelection = new StringSelection("password");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
Robot robot = new Robot();
Alert alert = driver.switchTo().alert();

alert.sendKeys("username");
robot.keyPress(KeyEvent.VK_TAB); 
robot.keyRelease(KeyEvent.VK_TAB);  
robot.keyPress(KeyEvent.VK_CONTROL); 
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V); 
robot.keyRelease(KeyEvent.VK_CONTROL);
 try {
 (new Robot()).keyPress(java.awt.event.KeyEvent.VK_ENTER);
  (new Robot()).keyRelease(java.awt.event.KeyEvent.VK_ENTER);
  } catch (AWTException e) {

 e.printStackTrace();
}
//alert.accept();
Thread.sleep(2000);