无法在Selenium java中的文本字段中输入文本

时间:2015-12-21 15:31:59

标签: html selenium-webdriver hidden-field

以下是HTML代码的相关摘要:

<form action="/portal/index#/accounts/enroll" method="get">
<button class="my_linkable_button"> Request StudyTRAX </button>
</form>

我使用下面的代码行输入数据

         </td>                                   
         <td valign=top bgcolor="#dcdcdc" class="camp">
          <script>Oblog()</script>ID <br>


        <input type="text" name="idClnt" size="14" maxlength="11" value='' class="cat" onchange="Camp(this);resetPreScore();" onKeyPress="if (event.keyCode == 13){EnterData();}">

我无法在文本字段中输入数据。它给出了以下错误:

“线程中的异常”main“org.openqa.selenium.ElementNotVisibleException:不显示元素(警告:服务器未提供任何堆栈跟踪信息)”

但该元素似乎不可见,我可以使用下面的代码找到元素:

driver.findElement(By.name("idClnt")).sendKeys("10000057W");

它给出了输出:

      List<WebElement> ele = driver.findElements(By.name("idClnt"));

             System.out.println(ele);

请建议我如何在文本字段中输入数据

2 个答案:

答案 0 :(得分:0)

为什么不使用类似的东西?

driver.findElement(By.name("idClnt")).sendKeys("whatever you want to type");

如果您只想在输入框中输入数据,为什么在这里使用列表?

答案 1 :(得分:0)

1)为了检查元素的可见性,您应该使用isDisplayed方法:

WebElement el = driver.findElement(By.cssSelector("input[class=cat]"));  
System.out.println(el.isDisplayed());

2)输入文字:

WebElement el = driver.findElement(By.cssSelector("input[class=cat]"));
el.sendKeys("SO the best!");

3)如果您想为隐藏value设置input,请尝试关注(更多详情https://stackoverflow.com/a/16327185/2517622):

JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement el = driver.findElement(By.cssSelector("input[class=cat]"));
js.executeScript("arguments[0].value = arguments[1];", el, "SO the best!");