DeslenCapabilities在Selenium WebDriver中的用途是什么?

bug*_*ker 41 selenium-webdriver

DeslenCapabilities在Selenium WebDriver中的用途是什么?

什么时候想用这个怎么样?

回答示例将不胜感激.

Lau*_*ntG 31

您应该阅读有关DesiredCapabilities的文档.ChromeDriver还有一个不同的页面.Javadoc来自Capabilities:

功能:描述封装浏览器各方面的一系列键/值对.

基本上,DesiredCapabilities帮助设置WebDriver的属性.一个典型的用例是设置FirefoxDriver本地安装与默认设置不对应的路径.

  • [Sauce Labs(链接)](https://saucelabs.com/docs/platforms)'平台展示了一个很好的例子.右侧有一个框,显示您与RemoteWebDriver实例一起使用的DesiredCapabilities,以从Sauce的服务请求具有该平台/ browser/os的RemoteWebServer. (3认同)

小智 17

  1. 这是一个org.openqa.selenium.remote.DesiredCapabilities包装类.
  2. 它提供了设置浏览器属性的功能.如设置BrowserName,Platform,Version of Browser.
  3. 我们使用Selenium Grid时大多使用DesiredCapabilities类.
  4. 我们必须在具有不同版本和不同操作系统的不同浏览器的多个系统上执行多个TestCase.

例:

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);
Run Code Online (Sandbox Code Playgroud)


Gau*_*Lad 5

我知道我很晚才回答这个问题.
但是想添加进一步的参考给出答案.
DesiredCapabilities像使用键值对设置配置一样.
以下是Appium用于自动化移动平台的示例,例如AndroidIOS.
因此,我们通常会针对特定事项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.
Run Code Online (Sandbox Code Playgroud)

//您需要检查应用程序的appPackage名称,您可以将此应用程序用于该APK INFO

// 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");
Run Code Online (Sandbox Code Playgroud)

这在平台DesiredCapabilities上非常具体.有关更多信息,请参阅Selenium desiredCapabilities类的官方网站AppiumAndroid