Невозможно ввести полные значения с помощью Selenium Script, только половина значений передается в поле - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь ввести текст в «невыбираемую строку», иногда он вводит только половину текста (не удается ввести первые несколько символов)

например: Если я пытаюсь ввести текст "qqwwssagsdafdsagdfgafgafdahdghjagds", иногда он принимает только последние несколько символов, т.е. fgafdahdghjagds.

HTML-код элемента, который я пытаюсь ввести. Значения:

HTML:

<div id="ext-comp-1002" class="x-layer x-editor x-small-editor x-grid-editor" style="position: absolute; z-index: 11000; visibility: hidden; left: -10000px; top: -10000px; overflow: auto; width: 238px;">
<input id="mltprcrtmain-1" class=" x-form-text x-form-field x-form-fieldui x-form-field-text " type="edit" name="mltprcrtmain-1" autocomplete="off" size="20" style="width: 238px;" maxlength="32">

Скрипт, который я использовал для передачи значений в невыбираемую строку (т.е. строку):

Код:

Actions act = new Actions(driver);
act.moveToElement(driver.findElement(By.id(genericHandlingExcel.getdata(FilePath, Sheetname2, 66,2)))).click(); 
act.sendKeys(genericHandlingExcel.getdata(FilePath, Sheetname2, 66,3)); 
Thread.sleep(5000);
act.sendKeys(Keys.ENTER);

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

В соответствии с вашим входным HTML, размер вашего текстового поля ввода составляет 20, и он будет поддерживать максимум 32 символа. Итак, мы должны ввести не более 32 символов, и только несколько символов будут видны в интерфейсе пользователя (при макс. 20 символов будут отображаться, и это может быть изменено на основе атрибута, который упоминается в классе).

Вы пытаетесь ввести текст из 35 символов, и, следовательно, несколько символов могут быть введены неправильно

Я бы предложил проверить введенный символ вручную, а также убедиться в этом, вручную введя тот же символ.

0 голосов
/ 02 июля 2018

Попробуйте добавить небольшую паузу в коде после клика:

Actions act = new Actions(driver); 
act.moveToElement(driver.findElement(By.id(genericHandlingExcel.getdata(FilePath, Sheetname2, 66,2)))).click();
Thread.sleep(2000); // add a small pause after click
act.sendKeys(genericHandlingExcel.getdata(FilePath, Sheetname2, 66,3)); 
Thread.sleep(5000); 
act.sendKeys(Keys.ENTER);
...