- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 java 中,可以通过传递 Desired Capabilities 为 Internet Explorer 驱动程序设置 IE 版本。这在 C# 中不起作用。
我希望它看起来像:
DesiredCapabilities ieCapabilities = null;
ieCapabilities = DesiredCapabilities.InternetExplorer();
ieCapabilities.SetCapability(CapabilityType.Version, "8");
IWebDriver driver = new InternetExplorerDriver(ieCapabilities);
在 c# 中,我无法将 DesiredCapabilities 传递给 InternetExplorerDriver() 构造函数。
最佳答案
DesiredCapabilities
被包装到特定驱动程序的各种 Options
类中。
有一个 InternetExplorerOptions
类,它允许您指定启动 IE 的额外选项,其中一种方法是 AddAdditionalCapability
,它允许您添加您希望请求的任何能力。这意味着选项包含功能,然后传递给驱动程序。
至于您的具体问题,不,这是不可能的。这也不是 Selenium 或 IEDriverServer 的限制,而是 IE 本身的限制。如果没有主要 技巧,您不可能同时在一台机器上安装多个版本的 IE。换个角度思考 - 每当您升级 IE 时,它都会卸载以前的版本。
它将启动您当前安装的 IE。其他任何事情都是纯粹错误的,而且,这也是错误的,因为您不能同时在一台 Windows 机器上安装多个版本的 IE。
解决这个问题的唯一方法是为每个版本配备单独的机器或虚拟机,或者投资于自动化云测试框架,如 SauceLabs。
编辑
您还提到您希望使用 IE8 的兼容模式,或者想知道在使用 IEDriver 时是否可行。
这又是完全不同的(双关语)。
IE 中的兼容性引擎不是,它是该浏览器引擎的真实代表。因此,你必须认为你正在运行,比如说,IE9 与 IE7 兼容模式,因此期望 IE7 完整 - 它不会,即使微软这么说,它也将用于临时测试 - 它不能被依赖.因此,即使您可以这样做,它也不是最可靠的测试。
问题仍然不是 Selenium 的问题。 IEDriver 将调用安装的任何 IE,此时由 IE 设置 Selenium 可以连接的 session 。
值得一提的是,所有您可以与 IEDriver 一起使用的兼容性选项不会影响 IE 本身,更多的是 session 的创建以及 Selenium 与其交互的方式。
此时,Selenium 举起双手,无能为力。
考虑到这一点,Selenium 根本无法强制 IE 使用特定的浏览器模式。根本没有 API 可以做到这一点,因此做起来并不容易。
此处的解决方法是首先强制 IE 在兼容性 View 中查看。您的选择非常有限:
关于c# - Selenium c# : How to launch Internet Explorer driver in a specific version (IE8 for example),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16718608/
我正在尝试获取此亚马逊页面中列出的每台笔记本电脑的图像 URL ( https://www.amazon.com/s?rh=n%3A565108%2Cp_72%3A4-&pf_rd_i=565108&
我正在设置 Atlassian Confluence,在选择数据库时,我在选择“使用外部 Mysql 数据库”时卡住了我看过一些教程,但对我来说,它并没有按照应有的方式工作。我使用 ubuntu 12
我是 Neo4J 的新手,正在尝试通过 java 连接到 Neo4J 服务器。 我的一个独立项目的pom入口如下: org.neo4j neo4j-o
所有这些有什么区别和用途? spark.local.ip spark.driver.host spark.driver.bind地址 spark.driver.hostname 如何将机器修复为 Sp
我在旧的 Inspiron 6400 计算机(GeForce 7300 笔记本电脑版)上安装了 Lubuntu 19.04,通过网络草稿编辑器教我儿子 Scratch。每次我通过 Firefox 打开
我使用 qt 开发了一个 c++ 库。在本文中,我使用 QSqlDatabase 从 SQLite 数据库中查询信息。注意:我的库在 qt 桌面应用程序中运行良好(我在 Linux 上开发)。 现在我
存在类似的问题,但没有帮助。 在 Apache 2.4 上安装 php5-fpm 通过 SSL 连接到远程 MySql 数据库。 可以通过命令行连接MySQL mysql -u myname -p'p
使用以下配置 (doctrine.yaml) 在 Symfony 4 中使用 Doctrine DBAL: dbal: # configure these for your database
使用以下配置 (doctrine.yaml) 在 Symfony 4 中使用 Doctrine DBAL: dbal: # configure these for your database
我有一个用 Java 编写的 Selenium Web 驱动程序测试,目标是 Liferay 站点。 // Login driver.get(baseUrl + "/"); driver.findEl
在driver.findElements()中,我们获得了另一个用于查找size()的函数,该函数在driver.findElement()中不可用。 这是唯一的区别吗? 最佳答案 driver.fi
这个问题已经有答案了: java.lang.IllegalStateException: The driver executable does not exist: while trying to e
简短描述:我有一个通过 SignTool 验证的签名驱动程序,但 Windows 拒绝加载它并出现错误:CodeIntegrity 3004 - 在系统上找不到文件哈希。我该如何解决这个问题? 详细说
我正在设置一些 Geb 测试,但出现“geb.driver.DriverCreationException:无法从回调创建驱动程序”错误。 Geb 将尝试启动测试浏览器窗口,但一旦启动,我的所有测试都
我想通过应用对象存储库概念在 Chrome 驱动程序中打开 url。下面给出的是我的 selenium 程序,其中包含两个文件,一个是 testng 文件,另一个是 config.property 文
我在 Ubuntu Linux、Spring Tools 2.7.1、Spring Roo 1.1.5 上运行 Eclipse Indigo。我正在阅读 Getting Started with Ro
打开 Url 的首选方法是什么(它们之间是否存在任何差异): driver.Url = "http://example.com"; 或 driver.Navigate().GoToUrl("http:
我使用 python 脚本传递给 cassandra 批处理查询,如下所示: query = 'BEGIN BATCH ' + 'insert into ... ; insert into ... ;
我在 Protractor 中执行脚本时出现以下错误。 System info: host: '8888', ip: '88888', os.name: 'Mac OS X', os.arch: 'x
我收到错误 KeyError:'driver'。 我想使用scrapy-selenium 创建一个网络爬虫。我的代码如下所示: class TestSpider(Spider): name="test
我是一名优秀的程序员,十分优秀!