Webdriver自动清除在TextBox中输入的文本(自动建议的文本)

时间:2018-11-22 09:35:34

标签: selenium selenium-webdriver automation ui-automation browser-automation

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>

1 个答案:

答案 0 :(得分:0)

您使用的输入具有一个onblur事件集。当对象失去焦点时,会发生onblur事件。可能您需要执行任何其他操作才能调用它,因为使用sendKeys时不会触发它。为此,请尝试其中的一件事

  1. 将点击添加到屏幕上的任何其他元素。例如,单击第二个输入,然后再输入任何值。或者只需单击不会触发任何事件的任何元素,任何简单的div或span都将起作用

  2. 在输入文本元素后通过javascript调用该元素的onblur事件

    locator.sendKeys(e.getCellData("Security", 11, i)); ((JavascriptExecutor)driver).executeScript("arguments[0].onblur();", locator);

相关问题