Java 无法在Selenium测试中检索文本框值

Java 无法在Selenium测试中检索文本框值,java,selenium-webdriver,Java,Selenium Webdriver,我不熟悉Selenium测试,我正试图在xpath、name和id的帮助下将值放入文本框中(java使用EclipseIDE): 运行时,textbox不会从上述代码中检索。有人能帮我解决这个问题吗?使用By.id代替By.xpath 如果你坚持,那么: 改为以://开头// 确保id值在第页上是唯一的 如果在某些浏览器中使用xpath,id或id会有所不同。By 在文本框中,它正在获取值,但无法存储 在文本框字段中 你是说你可以看到selenium在文本框中输入这些值,然后这些值就消失了 如果

我不熟悉Selenium测试,我正试图在xpath、name和id的帮助下将值放入文本框中(java使用EclipseIDE):


运行时,textbox不会从上述代码中检索。有人能帮我解决这个问题吗?

使用By.id代替By.xpath

如果你坚持,那么: 改为以://开头//

确保id值在第页上是唯一的

如果在某些浏览器中使用xpath,id或id会有所不同。

By

在文本框中,它正在获取值,但无法存储 在文本框字段中

你是说你可以看到selenium在文本框中输入这些值,然后这些值就消失了


如果是这样,那么当selenium在文本框中输入值时,页面上可能有一些javascript正在运行。您可以尝试在selenium输入值之前等待。如果等待解决了这个问题,那么您需要编写一个方法来检测javascript何时完成。

如果没有HTML,很难说清楚,但我建议做几件事:

  • 打开您的页面,转到GoogleChromeDevTools控制台,并验证您可以使用xpath定位元素。所以你要输入:
  • $x(“/*[@id='TxtemDepAddressLine1']”)

    并验证文本框是否位于

  • 如果sendKeys没有在该id的元素上工作,我想知道它是否不是在文本字段本身上,而是在包含表或类似的东西上。确保id所在的元素是输入,这样sendKeys就可以工作了

  • 支持您的问题的HTML将非常有用。您是否收到任何异常?没有异常,在文本框中它正在获取值,但无法存储在文本框字段中。@PiotrBoho运行它正在检索的项目时,我没有收到任何错误,但它没有将值存储在文本框中。因为它是必填字段,所以显示验证错误。请在调试模式下的sendKeys()行运行测试中放置断点。当到达断点时,在浏览器中手动输入相同的字符串。并继续运行测试。然后告诉我结果谢谢你。但是我试过使用Id,也试过使用By.name,除了两个文本框外,其余字段都正常工作。
       driver.findElement(By.xpath(".//* [@id='txtEmpDepAddressLine1']")).sendKeys("2nd Main")   
       driver.findElement(By.xpath(".//*[@id='txtEmpDepAddressLine2']")).sendKeys("Bangalore");