我正在使用webdriverio和mocha进行自动化测试。如果在我的自动化测试执行期间关闭浏览器窗口,我想结束该过程而不是继续执行我的测试。有没有办法检测浏览器关闭?我在selenium日志中看到了这些信息,但我不知道如何在我的实际节点脚本中检测到这一点。这是selenium服务器日志中的错误:
12:33:17.122警告 - 抛出异常 org.openqa.selenium.NoSuchWindowException:找不到窗口。浏览器窗口可能已关闭。
答案 0 :(得分:1)
您可以使用client.sessions()
检查会话是否仍然存在。你可以用这个
describe('check if session still exist', function() {
it('should check if session still exist', function() {
return browser.sessions().then(function(sessionid){
var id1 = sessionid
console.log(id1);
});
});
});
如果没有会话,则上述内容将返回
{ state: 'success',
sessionId: null,
hCode: 1944289324,
value: [],
class: 'org.openqa.selenium.remote.Response',
status: 0 }
否则会返回类似这样的内容
state: 'success',
sessionId: null,
hCode: 381733075,
value:
[ { capabilities: [Object],
id: '8ec2e2e8-6833-4105-8b84-1a6ce74a29ff',
hCode: 1337873045,
class: 'org.openqa.selenium.remote.server.handler.GetAllSessions$SessionInfo' } ],
class: 'org.openqa.selenium.remote.Response',
status: 0 }
然后在基于上述value
json对象的代码中的正确位置,您可以选择结束该过程。