Selenium webdriver 使用Selenium Webdriver(Java)时,输入字段中缺少第一个字母

Selenium webdriver 使用Selenium Webdriver(Java)时,输入字段中缺少第一个字母,selenium-webdriver,Selenium Webdriver,我需要使用SeleniumWebDriver填写电话号码字段(带有占位符=“(uuu)-”)。我面临的问题是:司机做得很快,第一个数字在我40%的测试中丢失了。我的意思是号码是965-234-43,司机做的是652-34-43 我的代码是: private void setBankPhone(String bankPhone) { driver.findElement(bankPhoneField).click(); driver.findElement(bankPhoneFie

我需要使用SeleniumWebDriver填写电话号码字段(带有占位符=“(uuu)-”)。我面临的问题是:司机做得很快,第一个数字在我40%的测试中丢失了。我的意思是号码是965-234-43,司机做的是652-34-43

我的代码是:

private void setBankPhone(String bankPhone) {
    driver.findElement(bankPhoneField).click();
    driver.findElement(bankPhoneField).clear();
    driver.findElement(bankPhoneField).sendKeys(Keys.HOME + bankPhone);
    checkBankPhone(bankPhone);
}

private void checkBankPhone(String bankPhone){
    WebElement phonElement = driver.findElement(bankPhoneField);
    if (!phonElement.getAttribute("value").equals(bankPhone)) {
        setBankPhone(bankPhone);
    }
}

使用
driver.findElement(bankPhoneField).sendKeys(bankPhone)根本无法填写该字段。

虽然我觉得您的代码很好,但我认为这是延迟/同步问题

在输入文本之前,您是否可以尝试以下任何方法以确保元素准备就绪

1。等待JavaScript加载

WebDriverWait wait=newwebdriverwait(驱动程序,超时);
JavascriptExecutor js_Executor=(JavascriptExecutor)getDriver();
ExpectedCondition jsLoad=driver->js_Executor.executeScript(“return document.readyState”).toString().equals(“complete”);
ExpectedCondition jQueryLoad=driver->js_Executor.executeScript(“return jQuery.active”).toString().equals(“0”);
//等待加载JavaScript和jQuery。
等待.直到(jsLoad);
等到(jQueryLoad);
2。使用等待条件

WebDriverWait wait=newwebdriverwait(驱动程序,超时);
wait.until(ExpectedConditions.elementtobelickable(webElement));

虽然您的代码在我看来很好,但我认为这是一个延迟/同步问题

在输入文本之前,您是否可以尝试以下任何方法以确保元素准备就绪

1。等待JavaScript加载

WebDriverWait wait=newwebdriverwait(驱动程序,超时);
JavascriptExecutor js_Executor=(JavascriptExecutor)getDriver();
ExpectedCondition jsLoad=driver->js_Executor.executeScript(“return document.readyState”).toString().equals(“complete”);
ExpectedCondition jQueryLoad=driver->js_Executor.executeScript(“return jQuery.active”).toString().equals(“0”);
//等待加载JavaScript和jQuery。
等待.直到(jsLoad);
等到(jQueryLoad);
2。使用等待条件

WebDriverWait wait=newwebdriverwait(驱动程序,超时);
wait.until(ExpectedConditions.elementtobelickable(webElement));

谢谢你的想法,但它没有解决我的问题。谢谢你的想法,但它没有解决我的问题。