【问题标题】:Selenium: find input fieled element in TableSelenium:在表中查找输入字段元素
【发布时间】:2017-04-25 20:06:00
【问题描述】:

我正在使用 Java 和 firefox 进行自动化。 我有下表:

   <table width="200" border="0">
     <tbody>
      <tr>
        <td align="LEFT">User-ID: </td>
        <td>
         **<input name="username" size="25"/>**
       </td>
     </tr>
       <tr>
       <td align="LEFT">Password: </td>
       <td>
         **<input name="password" size="25" type="PASSWORD"/>**
      </td>
     </tr>
 </tbody>
</table>

我需要到达“输入名称”和“输入密码”才能输入我的凭据。我尝试了以下命令:

driver.findElement(By.xpath("html/body/div[7]/div[2]/form[2]/fieldset/table[1]/tbody/tr[1]/td[2]/input")).sendKeys("XXXXX");
driver.findElement(By.xpath("*//table//tbody//tr//td[2]/input/@name")).sendKeys("XXXXXXX");

在这两种情况下,eclipse 什么也没找到。

有人可以帮助我使用正确的 xPath 吗?

Eclipse 中的错误消息如下:

Exception in thread "main" org.openqa.selenium.InvalidArgumentException: Expected [object Undefined] undefined to be a string

【问题讨论】:

  • 如果你使用xpath作为.//input[@name='password']会怎样
  • 什么error ?请添加

标签: selenium xpath selenium-webdriver


【解决方案1】:

使用xpath locatorcode下面试试这个

driver.findElement(By.xpath("//input[@name='username']")).sendKeys("Username");
driver.findElement(By.xpath("//input[@name='password']")).sendKeys("XXXXXX");

xpath的解释:-使用&lt;input&gt;标签的name属性。

注意:-不要使用absolute xpath,而是使用relative xpath

使用cssSelectorcode下面试试这个

driver.findElement(By.cssSelector("input[name='username']")).sendKeys("Username");
driver.findElement(By.cssSelector("input[name='password']")).sendKeys("XXXXXX");

【讨论】:

  • 您能否向我们展示您完整的试用代码?因为相同的代码对我有用,没有显示任何错误。
  • 参考这个问题,这可能会对你有所帮助。 stackoverflow.com/questions/25608227/…
【解决方案2】:

查看您的 HTML DOM,此命令对您有用:

您可以将“名称”定位器用作:

driver.findElement(By.name("username")).sendKeys("your_username"); driver.findElement(By.name("password")).sendKeys("your_password");

您可以将“xpath”定位器用作:

driver.findElement(By.xpath("//input[@name='username']")).sendKeys("your_username"); driver.findElement(By.xpath("//input[@name='password']")).sendKeys("your_password");

让我知道它是否适合你。

【讨论】:

  • Dev xpathname 不是属性,都是不同的定位器。
  • @JainishKapadia 谢谢,你是对的,已更正。
【解决方案3】:

我发现了您的答案不起作用的原因。 我得到的错误是一个实际的 Firefox 问题。 请参考此链接: https://bugzilla.mozilla.org/show_bug.cgi?id=1357661

非常感谢所有试图帮助我的人。

【讨论】:

  • 那么您是否提出了 Selenium/GitHub 或 Gecko/GitHub 的问题?现在是什么状态?
  • 请使用以下链接获取更多信息:bugzilla.mozilla.org/show_bug.cgi?id=1357661。与此同时,我正在为我的海豚使用 IE。
猜你喜欢
  • 1970-01-01
  • 2020-02-15
  • 2023-04-10
  • 2021-06-16
  • 2022-06-11
  • 2022-01-19
  • 2021-12-10
  • 2017-12-03
  • 2012-12-12
相关资源
最近更新 更多