所需能力 Selenium 网络驱动程序
所需能力是什么?
所需能力是一类 Selenium 用于设置浏览器的属性,以执行 Web 应用程序的跨浏览器测试。它将功能存储为键值对,这些功能用于设置浏览器属性,如浏览器名称、浏览器版本、系统中浏览器驱动程序的路径等,以确定浏览器在运行时的行为。
- 所需的功能也可用于配置驱动程序实例 Selenium WebDriver。
- 我们可以像这样配置驱动程序实例 Firefox通过使用所需的功能,驱动程序、ChromeDriver、InternetExplorerDriver。
版本说明: Selenium 4 使用浏览器选项类(ChromeOptions)取代 DesiredCapabilities, FirefoxOptions、EdgeOptions、InternetExplorerOptions。以下示例保留了原始语法。
为什么我们需要期望能力?
所需的能力是必要的,因为每 测试与验证 场景应该在某些特定的测试环境中执行。测试环境可以是 Web 浏览器, 电话 设备、移动模拟器、移动仿真器等等。所需功能类帮助我们告诉 WebDriver,我们将在测试脚本中使用哪个环境。
本页稍后部分将解释 DesiredCapabilities 类的 setCapability 方法,该方法可用于: Selenium 网格。它用于执行 并行执行 在不同的机器配置上。
例如:网格(如下所示)。
它用于设置浏览器属性(例如 Chrome、IE)、平台名称(例如 Linux、 Windows)在执行过程中使用 测试用例.
在移动自动化的情况下,当我们在不同类型的移动设备上进行测试时,移动平台(例如 iOS, Android) 平台版本(例如 3.x、4.x Android) 可以设置。
下面的模拟器示例显示了平台集为 android,平台版本集为 IceCream Sandwich (4.x)。
所需功能在以下情况下更有用:
- 在移动应用程序自动化中,可以设置浏览器属性和设备属性。
- In Selenium 当我们想在不同的浏览器、不同的操作系统和版本上运行测试用例时,可以使用网格。
所需能力的类型方法
在这里,我们将看到不同的所需功能方法以及如何使用其中一种方法,即 setCapability() 方法。
#1)获取浏览器名称()
public java.lang.String getBrowserName()
#2)设置浏览器名称()
public void setBrowserName(java.lang.String browserName)
#3)获取版本()
public java.lang.String getVersion()
#4)设置版本()
public void setVersion(java.lang.String version)
#5)获取平台()
public Platform getPlatform()
#6)设置平台()
public Platform setPlatform()
#7) getCapability() 方法
DesiredCapabilities 类的 getCapability() 方法可用于获取系统中当前正在使用的功能。
public java.lang.Object getCapability(java.lang.String capabilityName)
#8) setCapability() 方法
Desired Capabilities 类的 setCapability() 方法用于设置测试环境的属性,例如设备名称、操作系统名称和版本、浏览器名称和版本以及被测应用程序的绝对路径(即 .apk 文件)。 Android 被测应用程序)、应用程序活动( Android)和 appPackage(在 Java).
“setCapability 方法” Java 具有以下声明:
setCapability : public void setCapability(java.lang.String capabilityName,boolean value)
setCapability :public void setCapability(java.lang.String capabilityName,java.lang.String value)
setCapability :public void setCapability(java.lang.String capabilityName,Platform value)
setCapability :public void setCapability(java.lang.String key,java.lang.Object value)
设置功能 Selenium 例如:
让我们考虑一个例子,假设我们要在 Internet Explorer 浏览器上运行测试用例,以打开 www.gmail.com 网站。 Selenium WebDriver。
以下是代码。
import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; public class IEtestforDesiredCapabilities { public static void main(String[] args) { WebDriver driver = new InternetExplorerDriver(); driver.manage().window().maximize(); driver.get("http://gmail.com"); driver.quit(); } }
现在运行此代码 Eclipse 并检查控制台。
输出:
执行上述代码时会抛出以下错误。错误原因是浏览器驱动程序(上述示例中为 IE)的路径未设置。系统无法找到浏览器。 Selenium 码。
The path to the driver executable must be set by the webdriver.ie.driver system property; formore information, see http://code.google.com/p/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://code.google.com/p/selenium/downloads/list Dec 11, 201212:59:43PM org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib WARNING: This method of starting the IE driver is deprecated and will be removed in selenium 2.26. Please download the IEDriverServer.exe from http://code.google.com/p/selenium/downloads/list and ensure that it is in your PATH.
解决方案:
错误本身的警告部分给出了上述问题的解决方案。
- 下载适用于 32 位或 64 位的 Internet ExplorerDriver 独立服务器。
- 将驱动程序保存在系统中合适的位置。
- 使用 System.setProperty 方法设置驱动程序的路径。它用于通过 webdriver 属性设置 IE 驱动程序。这有助于找到存储在系统位置的驱动程序可执行文件。(例如:“C:\IEDriverLocation\IEDriver.exe”)
版本说明: Selenium 4.6 及更高版本通过以下方式自动解决驱动程序问题 Selenium 由于是管理器,所以 `System.setProperty` 是可选的。以下历史代码保持不变。
import org.openqa.selenium.WebDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; public class IEtestforDesiredCapabilities { public static void main(String[] args) { //it is used to define IE capability DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer(); capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE"); capabilities.setCapability(InternetExplorerDriver. INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true); System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe"); //it is used to initialize the IE driver WebDriver driver = new InternetExplorerDriver(capabilities); driver.manage().window().maximize(); driver.get("http://gmail.com"); driver.quit(); } }
Code 说明:
在上面的代码中,
- 导入语句导入所需的软件包。 Selenium WebDriver、Internet Explorer 驱动程序所需的软件包以及所需功能的软件包。
- setCapability 将各种功能作为输入变量,然后 Web 驱动程序使用这些输入变量在所需的环境中启动应用程序。
- setProperty 用于设置驱动程序所在的路径。然后 WebDriver 会找到所需的驱动程序。
- Gmail 使用 Internet Explorer 浏览器通过“get”方法打开网站。
输出:
使用 Internet Explorer 浏览器运行的测试用例将成功运行。 Selenium WebDriver。


