Selenium webdriver 无法使用selenium在文本框中输入值

Selenium webdriver 无法使用selenium在文本框中输入值,selenium-webdriver,Selenium Webdriver,我正在尝试自动更新Naukri.com上的号码。我可以从文本框中获取值,但无法更新值。这就是我所尝试的: WebElement mobileNo = driver.findElement(By.id("mobile")); if(mobileNo.getAttribute("value").equals("9912345678")) { System.out.println("Test Ran"); mobileNo.clear(); mobileNo.sendKeys

我正在尝试自动更新Naukri.com上的号码。我可以从文本框中获取值,但无法更新值。这就是我所尝试的:

WebElement mobileNo = driver.findElement(By.id("mobile")); 
if(mobileNo.getAttribute("value").equals("9912345678"))
{
    System.out.println("Test Ran");
    mobileNo.clear();
    mobileNo.sendKeys("+91 9912345678");
}
else if(mobileNo.getAttribute("value").equals("+91 1234567891"))
{
    mobileNo.clear();
    mobileNo.sendKeys("9912345678");
}
System.out.println("Test Ran");

原因是电话号码被设置为value属性,而我知道的唯一更新方法是使用JavaScript和Selenium。您可以轻松地使用以下JavaScript和JQuery来简单地更新电话号码

WebElement mobileNo = driver.findElement(By.id("mobile")); 
JavascriptExecutor jscript = (JavascriptExecutor)driver;

if(mobileNo.getAttribute("value").equals("9912345678"))
{
    System.out.println("Test Ran");
    jscript.executeScript("$('#mobile').attr('value','+91 9912345678')");

}
else if(mobileNo.getAttribute("value").equals("+91 9944991706"))
{
    jscript.executeScript("$('#mobile').attr('value','9912345678')");
}
System.out.println("Test Ran");

例外情况是什么?那么,到底发生了什么?异常->线程“main”org.openqa.selenium.ElementNotVisibleException中的异常:元素当前不可见,因此可能无法与。。。。。。。。。。。我能够从webelement获取值并在控制台中打印。但是,无法在webelement中输入所需的值。我在Naukri.com上找不到id为nokia的元素。我遗漏了什么吗?文本“mobile”本身是一个元素。复制我的问题的步骤:打开Naukri.com->编辑配置文件->尝试使用seleniumhi Saifer自动编辑手机号码,我尝试了您发布的一个,并得到以下实现错误“类型JavaScriptExecutor的方法executeScript(String)未定义”。你能给我建议一下解决方案吗?对不起,有个打字错误。刚才纠正了。再试一次