我希望根据浏览器是处于“桌面”模式(默认情况下)还是“移动”模式来运行一些帮助函数代码,某些规范只需要移动设备。高度始终为800,但宽度可以是600或1280.
login: function() {
var self = this;
var browserSize = browser.manage().window().getSize().then(function(size) {
// size is still an unresolved promise ;.;
return size;
});
// Go to login page
browser.get(browser.baseUrl); // Will redirect authed users to the application
// If not at the login page, logout first
if (browser.getCurrentUrl() !== browser.baseUrl) {
if (browserSize.width == 600) {
self.mobileLogout();
} else {
self.desktopLogout();
}
}
self.loginPage.login();
}
如何解析承诺getSize返回或以其他方式确定浏览器宽度?
答案 0 :(得分:3)
你非常亲密!这对我来说很有用:
var browserSizeOfMe = browser.driver.manage().window().getSize().then(function(size) {
console.log(" BROWSER SIZE "+ JSON.stringify(size) );
return size;
});
答案 1 :(得分:1)
您不必通过浏览器窗口的大小来解决区分移动和桌面判断的问题。相反,您可以通过getCapabilities()
访问已配置的功能,请参阅以下示例:
答案 2 :(得分:0)
您可以使用此脚本获取浏览器宽度
var width = window.innerWidth || document.body.clientWidth;
但我认为这不能解决你的问题
答案 3 :(得分:0)
这个功能确实有太多的承诺。我必须嵌套需要宽度和当前网址,以便在正确的时间定义和使用。
大致正常工作的代码:
login: function() {
var self = this;
browser.get(browser.baseUrl);
browser.getCurrentUrl().then(function(url) {
if(url !== browser.baseUrl) {
browser.manage().window().getSize().then(function(size) {
if (size.width == 600) {
self.mobileLogout();
} else {
self.desktopLogout();
}
}
}
self.loginPage.login();
}
}
答案 4 :(得分:-1)
可以使用“viewport”完成,看一下以下链接