这是一种我需要用来使用Selenium RC自动化我的应用程序的URL, http://user:pwd@somedomainname.domain.com
我的问题:IE 9是否真的支持这种格式?我可以看到它在FF中完美运行。
这在IE中与webdriverobject.get("url")
方法相同,但在RC中会发生什么?
没有任何效果。
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,
答案 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);