【发布时间】:2019-05-15 05:30:23
【问题描述】:
我在 nodejs 中使用 selenium webdriver 运行两个测试。我希望第一个测试停止,然后运行第二个。但问题是 driver.close 抛出异常。
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
var driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
driver.get('https://www.website.com/');
var values = [{email:'correctuser@website.com',password:'correct'},{email:'wronguser@website.com',password:'wrong'}];
testCase(values[0].email,values[0].password);
// driver.close throws exception
driver.close();
testCase(values[1].email,values[1].password);
function testCase(email,password){
driver.wait(until.urlIs('https://www.website.com/'))
driver.findElement(By.id('inputEmail')).clear();
driver.findElement(By.id('inputEmail')).sendKeys(email);
driver.findElement(By.id('inputPassword')).clear();
driver.findElement(By.id('inputPassword')).sendKeys(password);
driver.findElement(By.tagName('button')).click().then(()=>{
driver.wait(until.elementLocated(By.className('alert-danger'))).then(() =>{
console.log('Failed login case - success');
}).catch((e)=>{
console.log(e);
});
driver.wait(until.urlIs('https://www.website.com/home')).then(() => {
console.log('Successful login case - success');
}).catch((e)=>{
console.log(e);
});
});
}
错误信息:
(node:1296) UnhandledPromiseRejectionWarning: NoSuchSessionError: invalid session id
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Mac OS X 10.13.6 x86_64)
预期结果应该是:
- Successful login case - success
- Failed login case - success
【问题讨论】:
-
你为什么没有两种方法呢?如果失败是一个测试用例,成功应该是第二个测试用例。
-
我想重复使用相同的函数来插入键和检测响应。
标签: javascript selenium testing selenium-webdriver webdriver