我无法启动IE浏览器中运行Java编写的硒我自动化测试。 我使用的是Windows 7和IE 9。下面是我的代码:
请查收附件。
public class GoogleNews {
private WebDriver driver;
private String baseUrl;
private StringBuffer verificationErrors = new StringBuffer();
ArrayList al = new ArrayList();
@Before
public void setUp() throws Exception {
//driver = new FirefoxDriver();
driver =new InternetExplorerDriver();
baseUrl = "https://news.google.co.in/";
}
@Test
public void testApple() throws Exception {
driver.get(baseUrl);
}
}
需要设置相同的安全级别在所有区域。 要做到这一点请按照下列步骤:
- 打开IE
- 进入工具 - > Internet选项 - >安全
- 将所有区域(互联网,本地Intranet,受信任的站点,受限制的站点),以同样的保护模式,启用或禁用不应该的问题。
最后,通过对位于右上角的齿轮并启用状态栏右键单击设置缩放级别为100%。 默认缩放级别现在是在右下角显示。
还有堆栈跟踪说,你就需要设置保护模式设置为相同的IE浏览器中的所有区域。 阅读为什么在这里: http://jimevansmusic.blogspot.in/2012/08/youre-doing-it-wrong-protected-mode-and.html
和快速如何从相同的链接:“在IE中,从工具菜单(或更高版本工具栏上的齿轮图标),选择‘Internet选项’转到安全选项卡在对话框的底部。每一个区域,你应该看到一个标有一个复选框“启用保护模式”设置复选框相同值的值,选中或未选中,每个区域”
的webdriver的Java代码下面的代码片断应该合作,推出IE浏览器。 该代码会忽略的保护模式设置为IE浏览器的所有区域设置。
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
File file = new File("D:\\Ripon Al Wasim\\IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
WebDriver driver = new InternetExplorerDriver(capabilities);
driver.get("https://www.google.com/");
下载IEDriverServer并解压到你想要的位置,并设置绝对路径(在我上面的例子中,这是“d:\里彭铝瓦西姆\ IEDriverServer.exe”)
要解决这个问题,你必须做两件事情:
您将需要设置目标计算机上的注册表项,使驾驶者可以保持到Internet Explorer的情况下它会创建一个连接。
更改机器上的Internet Explorer浏览器的一些设置(如果你希望运行自动化)。
1。 设置注册表项/条目:
窗口32位:去这个位置- “HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Internet Explorer \ MAIN \ FeatureControl”,检查“FEATURE_BFCACHE”键。
的Windows 64位:去到这个位置- HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\的Internet Explorer \ MAIN \ FeatureControl和检查“FEATURE_BFCACHE”键。 请注意,FEATURE_BFCACHE子项可能会或可能不存在,如果不存在应创建 。
重要提示:这里面的关键,创建的0值名为iexplore.exe的DWORD值。
2。 更改Internet Explorer浏览器的设置:
点击设置按钮,选择“Internet选项”。
在“Internet选项”窗口,进入“安全”选项卡
现在,选择“Internet”选项,并选中“启用保护模式”复选框,并修改“安全级别”低。
现在,选择“本地Intranet”选项,并更改“安全级别”低。
现在,选择“受信任的站点”选项,并更改“安全级别”低。
- 现在点击“应用”按钮,警告弹出可能会出现,点击警告“OK”按钮,然后在Internet选项窗口中的“确定”按钮。
而不是使用绝对路径IEDriverServer.exe,它能够更好地使用按照该项目的相对路径。
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
File fil = new File("iDrivers\\IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", fil.getAbsolutePath());
WebDriver driver = new InternetExplorerDriver(capabilities);
driver.get("https://www.irctc.co.in");
对于NighwatchJS使用:
"ie" : {
"desiredCapabilities": {
"browserName": "internet explorer",
"javascriptEnabled": true,
"acceptSslCerts": true,
"allowBlockedContent": true,
"ignoreProtectedModeSettings": true
}
},
在开始使用Internet Explorer和硒的webdriver考虑这两个重要的规则。
- 缩放级别:应设置为默认值(100%)和
- 安全区域设置:应该是相同的所有。 安全设置应该根据自己的组织权限进行设置。
如何设置呢?
- 只需进入IE浏览器,手动一举两得的东西。 而已。 没有秘密。
- 做到这一点通过您的代码。
方法1:
DesiredCapabilities能力= DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);
System.setProperty("webdriver.ie.driver","D:\\IEDriverServer_Win32_2.33.0\\IEDriverServer.exe");
WebDriver driver= new InternetExplorerDriver(capabilities);
driver.get(baseURl);
//Identify your elements and go ahead testing...
这将definetly 不会显示任何错误,浏览器将打开 ,也将导航到URL。
但这不会识别任何元素 ,因此你无法继续。
为什么? 因为我们有simly抑制错误,并要求IE打开,并得到该URL。 然而硒将确定元素只有在浏览器缩放为100%,即。 默认。 所以最终代码会
方法2坚固和充分论证的方式 :
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);
System.setProperty("webdriver.ie.driver","D:\\IEDriverServer_Win32_2.33.0\\IEDriverServer.exe");
WebDriver driver= new InternetExplorerDriver(capabilities);
driver.get(baseURl);
driver.findElement(By.tagName("html")).sendKeys(Keys.chord(Keys.CONTROL,"0"));
//Identify your elements and go ahead testing...
希望这可以帮助。 不要让我知道,如果需要进一步的信息。