Selenium Java не может ввести текст в текстовое поле

#selenium

#selenium

Вопрос:

На странице есть ряд ячеек для ввода данных. Ячейка, с которой у меня возникли проблемы, выглядит следующим образом:

 <td class="sample-tree-cell omnidx-669 x-grid-cell x-grid-cell-gridcolumn-1063  editable-cell sample-measurement required odd-row x-form-invalid-field" id="ext-gen1335" data-errorqtip="<ul><li class=amp;quot;lastamp;quot;>This field is required</li></ul>">
    <div class="x-grid-cell-inner " style="text-align: left; ;" id="ext-gen1347">amp;nbsp;</div>
</td>
  

Таким образом, при нажатии на поле и ручном вводе ‘1234’ создается новый интервал, поэтому html-код ячейки выглядит следующим образом:

 <td class="sample-tree-cell omnidx-669 x-grid-cell x-grid-cell-gridcolumn-1063 x-grid-dirty-cell editable-cell sample-measurement required odd-row x-grid-cell-selected" id="ext-gen1335" data-errorqtip="<ul><li class=amp;quot;lastamp;quot;>This field is required</li></ul>">
    <div class="x-grid-cell-inner " style="text-align: left; ;" id="ext-gen1347">
    <span class="qtip-value " data-qtip="1234">1234</span></div></td>
  

Это все, что я пробовал:

         String txt_omniDxBox = "//table/tbody/tr[5]/td[5]/div";
        obj = driver.findElement(By.xpath(txt_omniDxBox));
        obj.click();
        sleep(1000);

        obj.sendKeys("1234");
        //String scriptSetAttrValue = "arguments[0].setAttribute(arguments[1],arguments[2])";
        //js.executeScript(scriptSetAttrValue, obj, "innerText", "1234");
        //js.executeScript(driver.findElement(By.xpath(txt_omniDxBox)).setAttribute("data-qtip", "1234");
        //js.executeScript("document.getElementById('ext-gen1347').setAttribute("innerText", "1234")");
  

Курсор установлен в текстовом поле, но я получаю сообщение об ошибке: элемент недоступен для взаимодействия.
Щелчок работает, так есть ли способ просто отправить текст на страницу?

Комментарии:

1. вам придется настроить таргетинг на элемент <input>, который создается после щелчка по ячейке. (после того, как курсор окажется в ячейке, щелкните правой кнопкой мыши и выберите проверить, чтобы увидеть входной тег) Вероятно, вам также следует использовать webdriverwaits с ожидаемыми условиями для этого. (вместо использования sleep)

2. К сожалению, входной тег не создается до тех пор, пока вы не выберете ячейку.

3. если курсор там мигает, это ввод.