Selenium c#:如何在特定版本中启动 Internet Explorer 驱动程序(例如 IE8)

2024-05-20

在 java 中,可以通过传递所需的功能来设置 Internet Explorer 驱动程序的 IE 版本。这在 C# 中不起作用。

我希望它看起来像这样:

DesiredCapabilities ieCapabilities = null;
ieCapabilities = DesiredCapabilities.InternetExplorer();
ieCapabilities.SetCapability(CapabilityType.Version, "8");

IWebDriver driver = new InternetExplorerDriver(ieCapabilities);

在 c# 中,我无法将 DesiredCapativity 传递到 InternetExplorerDriver() 构造函数中。


The DesiredCapabilities被包裹成各种Options特定驱动程序的类。

有一个InternetExplorerOptions类,它允许您指定启动 IE 的额外选项,其方法之一是AddAdditionalCapability这将允许您添加任何您想要的功能request。这意味着options包含能力然后传递给driver.

至于你的具体问题,不,这是不可能的。这也不是 Selenium 或 IEDriverServer 的限制,而是 IE 本身的限制。你不能,没有majorhacks,一台机器上同时安装多个版本的 IE。从另一个角度考虑 - 每当您升级 IE 时,它都会卸载以前的版本。

它将启动您当前安装的 IE。其他的都是pure这是错误的,而且,这是错误的,因为您根本无法在一台 Windows 计算机上同时安装多个版本的 IE。

解决这个问题的唯一方法是为每个版本拥有单独的机器或虚拟机,或者投资像 SauceLabs 这样的自动化云测试框架。

edit

您还提到您希望使用 IE8 的兼容模式,或者想知道在使用 IEDriver 时这是否可行。

这又是完全不同的事情(双关语)。

IE中的兼容性引擎是not,该浏览器引擎的真实代表。因此,你必须认为你正在运行,比如说,具有 IE7 兼容模式的 IE9,因此期望 IE7 是完整的 - 它不会,即使微软这么说,它是用于临时测试 - 它不值得依赖。因此,即使你could如果这样做的话,即使从最轻微的角度来看,这也不是一个可靠的测试。

问题仍然不是 Selenium 的问题。 IEDriver 将调用安装的任何 IE,此时,由 IE 来设置 Selenium 可以连接的会话。

值得一提的是all您可以与 IEDriver 一起使用的兼容性选项不会影响 IE 本身,更不会影响会话的创建以及 Selenium 与其交互的方式。

此时,Selenium 举起双手,无能为力。

考虑到这一点,Selenium 根本无法强制 IE 使用某种浏览器模式。根本没有 API 可以做到这一点,因此,这并不容易做到。

这里的解决方法是首先强制 IE 在兼容性视图中查看。你的选择非常有限:

强制 IE9 进入浏览器兼容性视图 https://stackoverflow.com/questions/11519645/force-ie9-into-browser-compatibility-view

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium c#:如何在特定版本中启动 Internet Explorer 驱动程序(例如 IE8) 的相关文章

  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐