WebDriver可以识别“文本”框。 WebDriver可以通过SendText将值传递到正确的文本框。 但是一旦我将输入提供给下一个字段或执行任何操作,输入的文本就会被擦除。
硒代码:
if(!(e.getCellData("Security",11,i).isEmpty())) {
WebElement locator = wait.until(ExpectedConditions.elementToBeClickable(By.name("fisnIssuerShortName")));
locator.sendKeys(e.getCellData("Security", 11, i));
List<WebElement> optionsToSelect = d.findElements(By.xpath("//div[@class='ui-menu-item-wrapper']"));
for (WebElement option : optionsToSelect) {
System.out.println(option);
if (option.getText().equals(e.getCellData("Security", 11, i))) {
option.click();
break;
}
}
}
HTML代码:
<tr>
<td class="label" align="left" width="30%">FISN -Issuer Short Name</td>
<td align="left" width="10%">
<b> : </b>
</td>
<td width="60%">
<input type="text" name="fisnIssuerShortName" maxlength="15" size="70" value="" onblur="setFISNComponent('fisnIssuerShortName');" id="fisnIssuerShortName" class="textField ui-autocomplete-input" autocomplete="off">
(Abbrev)
</input>
</td>
</td>
</tr>
答案 0 :(得分:0)
您使用的输入具有一个onblur
事件集。当对象失去焦点时,会发生onblur
事件。可能您需要执行任何其他操作才能调用它,因为使用sendKeys时不会触发它。为此,请尝试其中的一件事
将点击添加到屏幕上的任何其他元素。例如,单击第二个输入,然后再输入任何值。或者只需单击不会触发任何事件的任何元素,任何简单的div或span都将起作用
在输入文本元素后通过javascript调用该元素的onblur事件
locator.sendKeys(e.getCellData("Security", 11, i));
((JavascriptExecutor)driver).executeScript("arguments[0].onblur();", locator);