如何使用 Selenium WebDriver 启动 InternetExplorerDriver

Posted

技术标签:

【中文标题】如何使用 Selenium WebDriver 启动 InternetExplorerDriver【英文标题】:How can I start InternetExplorerDriver using Selenium WebDriver 【发布时间】:2013-12-05 14:22:05 【问题描述】:

我下载了驱动程序并在代码中给出了确切的路径,但是当我运行代码时它显示错误

我的java代码如下:

System.out.println("Internet Explorer is selected");
System.setProperty("webdriver.ie.driver","C:\\Program Files\\Selenium\\Drivers\\IEDriver\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
selenium = new WebDriverBackedSelenium(driver, "http://www.datamoat.com/");

错误信息是

org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.15 seconds
Build info: version: '2.37.0', revision: 'a7c61cb', time: '2013-10-18 17:15:02'
System info: host: 'SAKIB-PC', ip: '192.168.10.70', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_25'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver

【问题讨论】:

阅读错误信息。它说什么? 错误的主要部分是“所有区域的保护模式设置不同”。所以让所有区域的保护模式设置相同。 【参考方案1】:

它需要在所有区域中设置相同的安全级别。为此,请按照以下步骤操作:

1.打开IE

2.进入工具 -> Internet 选项 -> 安全

3.将所有区域(Int​​ernet、本地 Intranet、受信任站点、受限制站点)设置为相同的保护模式,启用或禁用都无关紧要。

最后,通过右键单击右上角的齿轮并启用状态栏,将缩放级别设置为 100%。默认缩放级别现在显示在右下方。

【讨论】:

感谢您提供的信息。现在你能告诉我如何为 chrome 驱动程序做同样的事情吗? @Sakib:该错误是特定于 Internet Explorer 的,那么您想如何“为 chrome 驱动程序做同样的事情”? Chrome 不需要做同样的事情。这只需要为 IE 完成【参考方案2】:

我认为您必须进行一些必要的配置才能正确启动和运行 IE。您可以在以下位置找到指南:https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver

【讨论】:

【参考方案3】:
import org.openqa.selenium.WebDriver;

import org.openqa.selenium.ie.*;

public class IEclass 



public static void main(String[] args) 

System.setProperty("webdriver.ie.driver","S:\\IE and Chrome ServerDriver\\IEDriverServer.exe");

WebDriver driver = new InternetExplorerDriver();

driver.get("https://www.google.com");
  
    

【讨论】:

请格式化您的代码,并尝试给出简短的解释,以使您的答案更有用!【参考方案4】:

在过去的一个月里,我一直在努力解决这个问题。最后我找到了一个富有成效的解决方案。这是我们为使其工作而遵循的确切步骤。我已经完成了必需的配置,如链接中所述:https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#required-configuration

    为所有区域启用/禁用 Internet Explorer 保护模式设置。 (在我的情况下,我启用了所有区域,与级别无关)。如果您的组织不允许这些设置,另一种解决方案是在活动目录级别创建一个组,并为该组强制执行我们预期的 Internet Explorer 设置。将您的用户名添加到该组。 从以下链接安装 IE Webdriver tool for windows。这是来自微软。安装后无需重启机器 https://www.microsoft.com/en-au/download/details.aspx?id=44069

    为您的 Internet Explorer 驱动程序使用这些所需功能

    DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
    capabilities.setCapability("requireWindowFocus", true);  
    capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, false);
    capabilities.setCapability("ie.ensureCleanSession", true);
    

    capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); capabilities.setCapability(InternetExplorerDriver.FORCE_CREATE_PROCESS, true); webDriver = new InternetExplorerDriver(capabilities);

    使用适当的 selenium 版本 2.53.1。我得到了它在 pom 中提到的 selenium 版本的工作

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.53.1</version>
    </dependency>
    

    从以下链接下载 IEDriverServer_x64_2.53.1.zip。确保其 2.53.1 http://selenium-release.storage.googleapis.com/index.html?path=2.53/

    现在转到当前用户的注册表设置(regedit.exe)(不要以管理员身份打开regedit)并在regedit中为以下路径添加TabProcGrowth

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main

右键单击 Main 并添加新的 DWORD(32 位)并将其设为 0。记住我尝试使用 QWORD 的 64 位它对我不起作用。

这个过程的关键是Step 2,即为windows安装IE Webdriver工具

我没有为 Selenium 最新版本 3.0 尝试过这种方法,但会尝试一下。

【讨论】:

【参考方案5】:

对于 Chrome 浏览器,以下是需要考虑的事项。

第 1 步-->Chrome 需要导入文件:import org.openqa.selenium.chrome.*;

第 2 步--> 设置路径并初始化 Chrome 驱动程序:

System.setProperty("webdriver.chrome.driver","S:\\chromedriver_win32\\chromedriver.exe");

注意:在第 2 步中,该位置应指向系统驱动器中 chromedriver.exe 文件的存储位置

第三步-->创建Chrome浏览器实例

WebDriver driver = new ChromeDriver();

其余的将与...相同

【讨论】:

【参考方案6】:

首先下载IEDriverServer的exe文件(64位和32位)。 无需安装,只需使用浏览器(64 位或 32 位)下载此文件 并在给定的代码中简单地给出 exe 文件的路径。

http://www.seleniumhq.org/download/

使用此代码

package myProject;

import org.openqa.selenium.ie.InternetExplorerDriver;

public class Browserlaunch 

    public static void main(String[] args) 

        System.setProperty("webdriver.ie.driver", "C:/Drivers/IEDriverServer.exe");
        InternetExplorerDriver IEDriver=new InternetExplorerDriver();
        IEDriver.get("http://localhost:8888");
    

【讨论】:

【参考方案7】:

下面的代码 sn-p 肯定会工作:

    InternetExplorerOptions ops = new InternetExplorerOptions();
    // ops.ignoreZoomSettings(); -- Not necessarily in case 100% zoom.
    ops.introduceFlakinessByIgnoringSecurityDomains(); -- Necessary to skip protected 
     mode setup

    System.setProperty("webdriver.ie.driver",
            <path>\\IEDriverServer.exe");
    WebDriver dr = new InternetExplorerDriver(ops);

【讨论】:

请在您的代码中添加一些描述它是如何工作的【参考方案8】:

在 c# 中,这可以绕过更改保护区设置。

var options = new InternetExplorerOptions();
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
options.ElementScrollBehavior = InternetExplorerElementScrollBehavior.Bottom;

【讨论】:

【参考方案9】:
    您必须将每个区域的保护模式设置设置为相同的值。 所有区域的增强保护模式必须相同。 (我更喜欢禁用它,因为这是 IE 10 及更高版本的要求。)

此外,IE 10 及更高版本必须禁用“增强保护模式”。此选项位于 Internet 选项对话框的高级选项卡中。

以上步骤怎么做???

看看这个视频:http://screencast.com/t/5nlxsrje4I。我已经展示了步骤。

来源:https://code.google.com/p/selenium/wiki/InternetExplorerDriver#Required_Configuration

希望这会有所帮助。谢谢你:)

【讨论】:

【参考方案10】:
static WebDriver driver;
System.setProperty("webdriver.ie.driver","C:\\(Path)\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
driver.manage().window().maximize();
driver.get("EnterURLHere");          
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);

【讨论】:

【参考方案11】:

1---为所有区域启用保护模式 您需要从 Internet 选项 -> 安全选项卡为所有区域启用保护模式。为所有区域启用保护模式

Open Internet Explorer browser.
Go to menu Tools -> Internet Options.
Click on Security tab.
Select Internet from "Select a zone to view or change security settings" and Select(check) check box "Enable Protected Mode" from In the "Security level for this zone" block .
Apply same thing for all other 3 zones -> Local Internet, Trusted Sites and Restricted Sites

此设置将解决与“所有区域的保护模式设置不同。

2-- 设置IE浏览器的缩放级别100%

Open Internet Explorer browser.
Go to menu View -> Zoom -> Select 100%

【讨论】:

【参考方案12】:

以下步骤对我有用,希望这对你也有用,

    打开 Internet Explorer。 导航到工具->选项 导航到安全选项卡 点击“将所有区域重置为默认级别”按钮 现在,对于 Internet、Intranet、受信任站点和受限站点等所有选项,请启用“启用受保护”模式复选框。 将 IE 缩放级别设置为 100%

    然后将下面的代码写入java文件并运行

    System.setProperty("webdriver.ie.driver","path of your IE driver exe\IEDriverServer.exe");
    InternetExplorerDriver driver=new InternetExplorerDriver();
    driver.manage().window().maximize();
    Thread.Sleep(10100);
    driver.get("http://www.Google.com");
    Thread.Sleep(10000);
    

【讨论】:

【参考方案13】:

要在 IE 浏览器中运行测试用例,请确保您已下载 IE 驱动程序,并且您还需要设置属性。

下面的代码会帮助你

// This will set the driver
System.setProperty("webdriver.ie.driver","driver path\\IEDriverServer.exe");

// Initialise browser

WebDriver driver=new InternetExplorerDriver();

您可以查看IE Browser challenges with Selenium 和complete code 了解更多详情

【讨论】:

【参考方案14】:

为所有区域启用保护模式 您需要从 Internet 选项 -> 安全选项卡为所有区域启用保护模式。为所有区域启用保护模式。

http://codebit.in/question/1/selenium-webdriver-java-code-launch-internet-explorer-brow

【讨论】:

【参考方案15】:

包浏览器;

导入 org.openqa.selenium.WebDriver; 导入 org.openqa.selenium.ie.InternetExplorerDriver;

公共课你好

public static void main(String[] args) 


    // setting IEdriver property
    System.setProperty("webdriver.ie.driver",
            "paste the path of the IEDriverserver.exe");

    WebDriver driver = new InternetExplorerDriver();

    // launching the google home screen
    driver.get("https://www.google.com/?gws_rd=ssl");


//希望这会成功

【讨论】:

【参考方案16】:

转到工具 -> Internet 选项 -> 安全并为所有区域启用保护模式。它对我有用:)

【讨论】:

以上是关于如何使用 Selenium WebDriver 启动 InternetExplorerDriver的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Java 在 selenium webdriver 中打开新选项卡,或者如何使用 selenium webdriver 使用动作类在 selenium 中按 ctrl + T [重复]

如何使用selenium webdriver来判断一个网页加载完毕

Selenium & webdriver.io 如何使用 executeScript?

如何使用selenium webdriver来判断一个网页加载完毕

如何使用 C# 在 Selenium WebDriver (Selenium 2) 中最大化浏览器窗口?

如何在 ruby​​ 中使用 Selenium WebDriver (selenium 2.0) 客户端设置选项