Selenium WebDriver 中的 DesiredCapabilities 有什么用?
我们什么时候想用这个,怎么用?
以示例回答将不胜感激。
您应该阅读有关DesiredCapabilities的文档。ChromeDriver也有一个不同的页面。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.
//你需要为你的应用检查你的appPackage Name,你可以使用这个应用获取那个APK信息
// 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
上非常具体。更多内容可以参考 Selenium 的官方网站desiredCapabilities 类Appium
Android
DesiredCapabilities
是可用于自定义和配置浏览器会话的选项。
你可以在这里阅读更多关于它们的信息!
当您运行 selenium WebDriver 时,WebDriver 在您计算机的本地主机中打开一个远程服务器。现在,这个称为Selenium Server的服务器用于将您的代码解释为运行或“驱动”真实浏览器实例的操作,称为 chromebrowser,即 broser、ff 浏览器等。
因此,Selenium 服务器可以与不同的浏览器属性进行交互,因此它具有许多“功能”。
现在你想要什么能力?考虑一个场景,您正在验证文件是否已在您的应用程序中正确下载,但是您没有桌面自动化工具。如果您单击下载链接并弹出桌面,询问保存位置和/或是否要下载。您绕过它的下一条路线是抑制该弹出窗口。如何?所需的能力。
还有其他这样的例子。总之,Selenium Server 可以做很多事情,使用 Desired Capabilities 来定制它以满足您的需求。
使用 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");