2015-12-21 73 views
0

下面是HTML代码中的相关片段:无法在文本字段中硒的java输入文字

  </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();}"> 

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

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

我无法进入数据在文本字段中。它提供了以下错误:

“在线程异常‘主要’org.openqa.selenium.ElementNotVisibleException:不显示元素(警告:服务器未提供任何信息栈跟踪)”

但元素呢似乎不是看不见,我能够通过使用下面的代码来定位元素:

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

      System.out.println(ele); 

它给人的输出:

[[[InternetExplorerDriver: internet explorer on WINDOWS (f319ec27-9201-4536-80a1-fe89689ebe83)] -> name: idClnt], [[InternetExplorerDriver: internet explorer on WINDOWS (f319ec27-9201-4536-80a1-fe89689ebe83)] -> name: idClnt], [[InternetExplorerDriver: internet explorer on WINDOWS (f319ec27-9201-4536-80a1-fe89689ebe83)] -> name: idClnt]] 

文ndly建议我将如何能够在文本字段中输入数据

回答

0

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

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

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

0

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

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

2)输入文字:如果您想设置value隐藏input

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

3)尝试以下(更详细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!"); 
+0

感谢您的回复!我使用了isDisplayed方法,它将结果作为false隐含元素不可见。所以我会需要一种方式在隐藏字段中输入数据? – Vinay

+0

@Vinay答案更新。 – drets

+0

感谢您的回复!但它似乎也没有工作,该程序只是终止没有任何错误。我尝试了(http://stackoverflow.com/questions/11858366/how-to-type-some-text-in-hidden-field-in-selenium-webdriver-using-java?rq=1中给出的方法之一)。使用该方法会给我一个错误“元素不能被隐藏,禁用或只读”。 – Vinay