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

时间:2013-07-08 13:30:37

标签: selenium-webdriver

Selenium WebDriver中DesiredCapabilities的用途是什么?

当我们想要使用它以及如何使用时?

回答示例将不胜感激。

6 个答案:

答案 0 :(得分:27)

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

  

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

基本上,DesiredCapabilities有助于设置WebDriver的属性。如果您的本地安装与默认设置不对应,则典型的用例是设置FirefoxDriver的路径。

答案 1 :(得分:15)

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

    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);
    

答案 2 :(得分: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.

//您需要检查应用的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");

DesiredCapabilities非常特定于Appium平台上的Android。 有关更多信息,请参阅Selenium官方网站desiredCapabilities class

答案 3 :(得分:3)

DesiredCapabilities是可用于自定义和配置浏览器会话的选项。

您可以详细了解here

答案 4 :(得分:0)

使用selenium网格进行远程或并行执行时,所需的功能非常方便。我们将参数化浏览器详细信息并使用所需的功能类传递给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"); 

答案 5 :(得分:0)

当您运行selenium WebDriver时,WebDriver会在您计算机的本地主机中打开一个远程服务器。现在,这个名为selenium服务器的服务器用于将您的代码解释为要运行的操作或者#34; drive"一个真正的浏览器实例,称为chromebrowser,即broser,ff浏览器等。因此,selenium服务器可以与不同的浏览器属性进行交互,因此它具有许多"功能"。那么,你想要什么样的能力?考虑一种情况,您要验证文件是否已在应用程序中正确下载,但是,您没有桌面自动化工具。因此,如果您单击下载链接,则会弹出一个桌面弹出窗口,询问保存位置和/或是否要下载。你绕过的下一个路线是抑制弹出。怎么样?欲望能力。而且,其他这样的例子。总之,Selenium Server可以做很多事情,使用所需的功能来根据您的需要定制它。