我是 selenium 的新手,对我的第一个脚本有一些疑问。
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 生成并发送到服务器的查询?
更新:
<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>
最佳答案
您使用类属性作为 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();
或者使用按类
driver.findElement(By.name('login')).sendKeys('login');
driver.findElement(By.className('passwd')).sendKeys('passwd');
driver.findElement(By.className('button')).click();
关于javascript - Selenium findElement 通过 CSS 和发送表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35037662/