【问题标题】:Webdriver automatically clears Text (Autosuggested text)entered in TextBoxWebdriver 自动清除 TextBox 中输入的文本(自动建议的文本)
【发布时间】:2019-04-24 22:50:39
【问题描述】:

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>

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-29
      • 2015-10-19
      • 1970-01-01
      • 2019-06-06
      • 2020-05-17
      • 2013-10-09
      相关资源
      最近更新 更多