Selenium WebDriver Java - 无法在表单中填写输入字段

时间:2015-09-23 20:12:24

标签: java selenium testing webdriver

我正在尝试使用.sendKeys(…)在表单中填写input字段。

HTML我正在使用:

<tr>
   <td class="multi-line required" style="min-width:120px;">Name:</td>
   <td>
      <div style="position:relative">
         <span style="display:inline-block">
            <input type="text" id="_96a1fa0eccfaf628" size="40" maxlength="64" placeholder="" name="96a1fa0eccfaf628" value="">
         </span>
         <font class="error">*</font>
      </div>
   </td>
</tr>

我正在使用的代码:

driver.findElement(By.id("_96a1fa0eccfaf628")).sendKeys("Test Org 002");

我也试过了By.name("96a1fa0eccfaf628"),但是没有。

我得到的错误:http://pastebin.com/tZ8FSwqx

3 个答案:

答案 0 :(得分:1)

我有类似的问题。首先单击input元素,然后清除,最后发送sendkeys。

driver.findElement(By.XX("your_selector")).click();
driver.findElement(By.XX("your_selector")).clear();

然后编写sendKeys函数。

答案 1 :(得分:1)

您的定位器似乎有问题(ID和名称都有一些动态和随机值)。尝试使用以下定位器

By.xpath("//td[contains(text(),'Name')]/following-sibling::td//input[@type='text']")

答案 2 :(得分:0)

元素ID是否以动态命名&#34; _96a1fa0eccfaf628&#34;或者这总是ID的名称?如果它是动态命名的,例如名称会更改每个会话,那么这可能是您的问题。如果元素总是被称为&#34; _96a1fa0eccfaf628&#34;然后我会尝试使用&#34;类型&#34;命令或使用单击命令单击该字段,然后执行sendKeys命令,在每个步骤之间使用400 ms的小暂停,看看是否有效。