#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. если курсор там мигает, это ввод.