Node JS:Selenium-Webdriver sendKeys到字段,插入的值不对

问题描述 投票:0回答:1

这里的情况是尝试测试登录功能。当我尝试将key发送到userId和密码字段时(检查下面的代码)。有时密码的密钥会转到用户名field.sometimes loginBtn完成执行,而userId和密码字段没有插入keys.Below是我的代码:

var webdriver = require("selenium-webdriver");
var test = require("selenium-webdriver/testing");
var assert = require("assert");
var By = require("selenium-webdriver").By;

var driver = new webdriver.Builder().withCapabilities(webdriver.Capabilities.chrome()).build();

testAfterLogin();
function testAfterLogin() {

    driver.get("https://xxxxx.com");
 
    var userid = driver.findElement(By.id('xxxxyyy'));
    userid.clear();
    userid.sendKeys("userId");

    var password = driver.findElement(By.id('yyyyzzzz'), 2000);
    password.clear();
    password.sendKeys("password");  


    var loginBtn = driver.findElement(By.className("btnBtn"));
    loginBtn.click(); 

}

我认为由于节点js运行非阻塞,它并不总是逐行执行。有办法解决这个问题吗?谢谢你! enter image description here

selenium-webdriver sendkeys
1个回答
0
投票

我们可以使用webdriver.until.elementLocated(locator)来解决这个问题。下面是示例代码。

var userId = driver.wait(until.elementLocated(By.id('UserID')))
userId.sendKeys("test");

var pwd = driver.wait(until.elementLocated(By.id('Password')))
pwd.sendKeys("123456");
  
 
var loginBtn = driver.wait(until.elementLocated(By.className('btn-login')))
loginBtn.sendKeys(webdriver.Key.ENTER);
© www.soinside.com 2019 - 2024. All rights reserved.