Webdriver автоматически очищает текст (автоматически переданный текст), введенный в TextBox - PullRequest
0 голосов
/ 22 ноября 2018

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 голосов
/ 22 ноября 2018

Вход, с которым вы работаете, имеет набор событий onblur.Событие onblur происходит, когда объект теряет фокус.Возможно, вам нужно выполнить какое-либо дополнительное действие, чтобы вызвать его, так как оно не срабатывает при использовании sendKeys.Чтобы сделать это, попробуйте одну из вещей:

  1. добавьте щелчок к любому другому элементу на экране.Например, нажмите на второй вход, прежде чем вводить в него любое значение.Или просто щелкните по любому элементу, который не вызывает никакого события, любой простой div или span будет работать

  2. вызовет событие onblur элемента через javascript после ввода в него текста

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

...