【问题标题】:Selenium WebDriver on IE11IE11 上的 Selenium WebDriver
【发布时间】:2014-07-10 01:52:32
【问题描述】:

我正在使用 WebDriver 自动化我们的 web 应用程序的回归套件,我试图让我的测试脚本在 IE11 上运行,但没有任何成功。

我了解 IEDriverServer.exe 目前不支持 WebDriver,并且该问题需要 Microsoft 的合作,我已尝试在对 Selenium 问题 #6511 的回复中列出的步骤。

  1. (仅对于 IE 11,您需要在目标计算机上设置一个注册表项,以便驱动程序可以保持与其创建的 Internet Explorer 实例的连接。对于 32 位 Windows 安装,您必须检查的密钥在注册表编辑器中是 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE。

    对于 64 位 Windows 安装,密钥是 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE。请注意,FEATURE_BFCACHE 子项可能存在也可能不存在,如果不存在,则应创建它。在此键中,创建一个名为 iexplore.exe 的 DWORD 值,值为 0。)

  2. 所有区域的保护模式设置都相同

  3. 增强保护模式已禁用。

但是当我在 IE11 中执行我的自动化脚本时,它仍然在打开浏览器并低于异常

org.openqa.selenium.ElementNotVisibleException: Received a JavaScript error attempting to 
click on the element using synthetic events.We are assuming this is because the element 
isn't displayed, but it may be due to other problems with executing JavaScript. (WARNING:
The server did not provide any stacktrace
information)

谁能帮我解决这个问题。我需要在 IE11 中执行我的自动化脚本。

版本详情:

  1. 硒2.41.0

  2. InternetExplorerDriver 服务器(32 位)2.40.0.0

  3. Windows 7 - 32 位

【问题讨论】:

  • 我已经尝试过 Selenium 和 IEDriverServer 相同的版本,即 2.41.0,仍然得到相同的异常。任何人都可以遇到同样的问题,如果您解决了这个问题,请帮助我?

标签: internet-explorer selenium internet-explorer-11


【解决方案1】:

这有点棘手和烦人,但有可能。

您已经提到了所需的 IE 设置。它还缓存运行/使用之间的内容,您必须清除缓存和个人设置。我发现以下内容有助于确保实例在启动时是干净的。这些是在实例化 WebDriver 时将传递给 IE 实例的选项。

本地:

    var options = new InternetExplorerOptions();
    options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
    //Clean the session before launching the browser
    options.EnsureCleanSession = true;

远程:

    capabilities = DesiredCapabilities.InternetExplorer();
    capabilities.SetCapability("ie.ensureCleanSession", true);

也许这以及您提到的 IE 安全设​​置可能对您有用。

【讨论】:

    【解决方案2】:

    微软已发布 IE11 网络驱动程序

    http://www.microsoft.com/en-us/download/details.aspx?id=44069

    【讨论】:

    • {支持的操作系统 Windows 7 Service Pack 1、Windows 8.1 Windows 8.1 Windows 7 SP1}
    • 救生员@TyMayn
    【解决方案3】:

    2017 年更新:

      case "remote5555iexplorer" => {
        println(" load web-driver: remote5555iexplorer")
    
        val dc = DesiredCapabilities.internetExplorer()
        dc.setJavascriptEnabled(true)
         dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true)
        dc.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true)
        dc.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true)
    
        dc.setCapability(InternetExplorerDriver.NATIVE_EVENTS, false);
    
        remote = new RemoteWebDriver(new URL("http://localhost:5555/"), dc) 
        //remote = new InternetExplorerDriver(dc)
    
      }
    

    iexplorer:11.0.9.9600.17843 更新版本:11.0.20

    libraryDependencies += "org.seleniumhq.selenium" % "selenium-ie-driver" % "3.3.1"

    webdriver:IEDriverServer.exe 3.2.0.0(64 位)

    运行 webdriver 的命令:IEDriverServer.exe /LOG-LEVEL=DEBUG

    【讨论】:

    • 嗨 Nexoma,这是否解决了之前 ie11 面临的问题
    • 我在win7、win10中使用这个变种,没有保护模式和注册表编辑。
    【解决方案4】:

    这都是关于所需功能的.. 使用这条线您所需的 IE 驱动程序功能,它不会再次重复... 它对我有用..

                ieCapabilities.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL,false);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      • 2014-01-09
      相关资源
      最近更新 更多