【发布时间】:2013-07-05 20:42:38
【问题描述】:
Selenium WebDriver 中的 DesiredCapabilities 有什么用?
我们什么时候想用这个,怎么用?
我们将不胜感激。
【问题讨论】:
Selenium WebDriver 中的 DesiredCapabilities 有什么用?
我们什么时候想用这个,怎么用?
我们将不胜感激。
【问题讨论】:
您应该阅读有关DesiredCapabilities 的文档。 ChromeDriver 也有一个不同的页面。来自Capabilities的Javadoc:
功能:描述一系列封装浏览器各个方面的键/值对。
基本上,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 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 非常特定于Android 平台上的Appium。
更多可以参考Selenium官网desiredCapabilities class
【讨论】:
DesiredCapabilities 是可用于自定义和配置浏览器会话的选项。
您可以阅读更多关于他们的信息here!
【讨论】:
当您运行 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");
【讨论】: