我正在运行multiCapabilities,并且想知道是否有可能知道当前使用的功能,包括onPrepare函数和/或testcase本身.
用例是我计划在chrome和android上运行我的测试.对于Chrome,窗口应该调整为所需的尺寸,但是在selendroid上运行相同的代码会产生异常,因为该方法没有实现(同时调整设备上的窗口大小也没有意义):
所以,想法是以某种方式包装像这样的简单检查中的违规代码:
if(browser != 'android')
browser.driver.manage().window().setSize(480, 800);
还有其他用例,但这是目前最重要的用例.
我在这个onPrepare部分做了类似的事情,例如
// Return if current browser is IE, optionally specifying if it is a particular IE version
browser.isInternetExplorer = function(ver) {
var browserName, version, ie;
return browser.getCapabilities().then(function(s) {
browserName = s.caps_.browserName;
version = s.caps_.version;
ie = /i.*explore/.test(browserName);
if (ver == null) {
return ie;
} else {
return ie && ver.toString() === version;
}
});
};
Run Code Online (Sandbox Code Playgroud)
然后,我稍后使用它:
if (browser.isInternetExplorer()) {...}
Run Code Online (Sandbox Code Playgroud)
对于Android,这应该工作:
browser.isAndroid = function(ver) {
var browserName, version;
return browser.getCapabilities().then(function(s) {
browserName = s.caps_.browserName;
version = s.caps_.version;
return /droid/.test(browserName);
});
};
Run Code Online (Sandbox Code Playgroud)