2013-07-08 49 views

回答

23

您应该阅读有关DesiredCapabilities的文档。 ChromeDriver也有不同的页面。 Javadoc from Capabilities

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

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

+3

[Sauce Labs(link)](https://saucelabs.com/docs/platforms)'平台显示了一个很好的例子。右侧显示一个框,显示您使用RemoteWebDriver实例向DescriptCapabilities请求带有来自Sauce服务的平台/浏览器/操作系统的RemoteWebServer。 –

3

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

你可以阅读更多关于他们here

11
  1. 它是org.openqa.selenium.remote.DesiredCapabilities包中的一类。
  2. 它给设施设置浏览器的属性。如设置浏览器名称,平台,浏览器版本。
  3. 当我们使用Selenium Grid时,主要使用DesiredCapabilities类。
  4. 我们必须在不同的浏览器上使用不同的版本和不同的操作系统在多个系统上执行多个TestCases。

例子:

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); 
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是非常具体到AppiumAndroid平台。 欲了解更多您可以参考硒desiredCapabilities class

4

所需能力的官方网站是一系列的键/值对的存储像browsername,浏览器版本,浏览器驱动器的系统路径等浏览器性能确定浏览器在运行时的行为。

所需的功能也可用于配置Selenium WebDriver的驱动程序实例。 我们可以通过使用所需的功能配置驱动程序实例,如FirefoxDriver,ChromeDriver,InternetExplorerDriver。 期望的功能在以下情况下更有用:

在移动应用程序自动化中,可以设置浏览器属性和设备属性。 在Selenium网格中,我们希望在具有不同操作系统和版本的不同浏览器上运行测试用例。

0

所需的功能在使用硒电池进行远程或并行执行时派上用场。我们将参数化浏览器详细信息并使用期望的功能类传递给硒服务器。

另一个用途是,使用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"); 
0

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

相关问题