我正在使用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>
我需要到达&#34;输入名称&#34;和&#34;输入密码&#34;为了输入我的凭据。我尝试了以下命令:
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
答案 0 :(得分:1)
查看HTML DOM,此命令适用于您:
您可以将“name”定位器用作:
driver.findElement(By.name("username")).sendKeys("your_username");
driver.findElement(By.name("password")).sendKeys("your_password");
OR
您可以将“xpath”定位器用作:
driver.findElement(By.xpath("//input[@name='username']")).sendKeys("your_username");
driver.findElement(By.xpath("//input[@name='password']")).sendKeys("your_password");
让我知道它是否适合你。
答案 1 :(得分:1)
使用code
xpath locator
下面尝试此操作
driver.findElement(By.xpath("//input[@name='username']")).sendKeys("Username");
driver.findElement(By.xpath("//input[@name='password']")).sendKeys("XXXXXX");
xpath的说明: - 使用name
标记的<input>
属性。
注意:而不是absolute xpath
,请使用relative xpath
。
OR
使用code
cssSelector
下面尝试此操作
driver.findElement(By.cssSelector("input[name='username']")).sendKeys("Username");
driver.findElement(By.cssSelector("input[name='password']")).sendKeys("XXXXXX");
答案 2 :(得分:1)
我发现了为什么你的答案不起作用。 我得到的错误是一个实际的Firefox问题。 请参考此链接: https://bugzilla.mozilla.org/show_bug.cgi?id=1357661
非常感谢所有试图帮助我的人。