我是硒的新手,对我的第一个剧本有疑问。
driver.findElement({ css: '.input[name=login]' }).sendKeys('login');
//driver.sleep(0);
driver.findElement({ css: '.input.passwd' }).sendKeys('passwd');
driver.sleep(5000);
driver.findElement({ css: '.button[type=submit]' }).click();
driver.sleep(10000);
driver.getTitle().then(function(title) {
console.log(title);
assert.ok(title.indexOf('Title') > -1, 'Wrong title');
}
执行后仍然在登录页面上,除了“AssertionError:Wrong title”之外没有错误。
如果selenium没有找到某个元素我有一个错误,如“NoSuchElementError:没有这样的元素:无法找到元素:”,
所以我认为所有的元素都被找到了,所有的行为都像“sendKeys”和“click”一样有效。但事实并非如此。
如何在执行脚本中检查它?
我怎么看,生成并发送到服务器的查询selenium是什么?
UPD:
<input name="login" value="" type="text" class="input" tabindex="5">
<input name="" value="" type="password" class="input passwd" tabindex="6">
<input hidefocus="true" type="submit" class="button"></input>
答案 0 :(得分:0)
您使用class属性作为html标记。例如,class=input
和name=login
都是<input>
标记的WebElement的属性。尝试
driver.findElement({ css: 'input[name="login"]' }).sendKeys('login');
driver.findElement({ css: '.passwd' }).sendKeys('passwd');
driver.findElement({ css: '.button' }).click();
或者
driver.findElement({ name: 'login' }).sendKeys('login');
driver.findElement({ className: 'passwd' }).sendKeys('passwd');
driver.findElement({ className: 'button' }).click();
或使用By class
driver.findElement(By.name('login')).sendKeys('login');
driver.findElement(By.className('passwd')).sendKeys('passwd');
driver.findElement(By.className('button')).click();