在Selenium WebDriver中,DesiredCapabilities有何用途?
我们什么时候需要使用它?
最好提供一个示例来回答。
在Selenium WebDriver中,DesiredCapabilities有何用途?
我们什么时候需要使用它?
最好提供一个示例来回答。
Capabilities
的Javadoc中可以了解:
Capabilities: 描述了封装浏览器方面的一系列键值对。
基本上,DesiredCapabilities
有助于为WebDriver设置属性。一个典型的用例是,如果您的本地安装与默认设置不符,则需要设置FirefoxDriver
的路径。
org.openqa.selenium.remote.DesiredCapabilities
包中的一个类。WebDriver driver;
String baseUrl , nodeUrl;
baseUrl = "https://www.facebook.com";
nodeUrl = "http://192.168.10.21:5568/wd/hub";
DesiredCapabilities capability = DesiredCapabilities.firefox();
capability.setBrowserName("firefox");
capability.setPlatform(Platform.WIN8_1);
driver = new RemoteWebDriver(new URL(nodeUrl),capability);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(2, TimeUnit.MINUTES);
DesiredCapabilities
像设置键值对一样用于配置。Appium
相关的示例,用于自动化移动平台,如 Android
和 IOS
。DesiredCapabilities
来传达我们的 WebDriver
,以便狭窄测试的性能并提高准确性。
所以我们把我们的 DesiredCapabilities 设置为:
// Created object of DesiredCapabilities class.
DesiredCapabilities capabilities = new DesiredCapabilities();
// Set android deviceName desired capability. Set your device name.
capabilities.setCapability("deviceName", "your Device Name");
// Set BROWSER_NAME desired capability.
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Chrome");
// Set android VERSION desired capability. Set your mobile device's OS version.
capabilities.setCapability(CapabilityType.VERSION, "5.1");
// Set android platformName desired capability. It's Android in our case here.
capabilities.setCapability("platformName", "Android");
// Set android appPackage desired capability.
//您需要检查应用程序的包名称,您可以使用此应用程序进行检查APK INFO
请注意检查您的应用程序的包名称以确保您的IT技术工作顺利进行。
// Set your application's appPackage if you are using any other app.
capabilities.setCapability("appPackage", "com.android.appPackageName");
// Set android appActivity desired capability. You can use the same app for finding appActivity of your app
capabilities.setCapability("appActivity", "com.android.calculator2.Calculator");
这个 DesiredCapabilities
对于在 Android
平台上使用 Appium
非常特定。详情请参考 Selenium 的官方网站上的 desiredCapabilities class
在使用 Selenium Grid 进行远程或并行执行时,期望的功能非常有用。我们将对浏览器详细信息进行参数化,并使用期望的功能类将其传递到 Selenium 服务器。
另一个用途是使用 Appium 进行测试自动化,如下所示:
// Created object of DesiredCapabilities class.
DesiredCapabilities capabilities = new DesiredCapabilities();
// Set android deviceName desired capability. Set your device name.
capabilities.setCapability("deviceName", "your Device Name");
// Set BROWSER_NAME desired capability.
capabilities.setCapability(CapabilityType.BROWSER_NAME, "Chrome");
// Set android VERSION desired capability. Set your mobile device's OS version.
capabilities.setCapability(CapabilityType.VERSION, "5.1");
// Set android platformName desired capability. It's Android in our case here.
capabilities.setCapability("platformName", "Android");