Protractor: Невозможно вставить 100 000 символов тестовых данных в текстовое поле

Созданный на 23 сент. 2015  ·  3Комментарии  ·  Источник: angular/protractor

Привет. Для тестирования мне нужно вставить 100 000 символов в поле ввода. Проблема в том, что sendKeys () не может обрабатывать такой объем данных, и браузер зависает. Он начинает ввод данных в текстовое поле, а затем через некоторое время перестает отвечать, и тест не выполняется из-за тайм-аута.

Я пробовал разные способы решить эту проблему, например, разделить файл на несколько частей, но он не может обрабатывать даже 30 000 символов.

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

Есть ли у кого-нибудь решение, как вставить в текстовое поле 100 000 символов?
Спасибо!

Код:
var fs = require ('fs');
var path = require ('путь');
var filePath = path.join (__ dirname, 'datafile.json');
var data = require (filePath)
browser.findElement (By.tagName ("textarea")). sendKeys (data.cbb);
browser.sleep (5000);
browser.findElement (By.name ("Отправить")). click ();

question

Все 3 Комментарий

SendKeys WebDriver на самом деле не предназначен для обработки 100 000 нажатий клавиш. Он имитирует события изначально, поэтому для каждого отдельного персонажа он отправляет отдельный запрос.

Я полагаю, вы могли бы обойти это, установив текст напрямую через JavaScript, выполняемый в браузере:

browser.executeScript('findMyTextarea.textContent="myreallyreallylongstring"');

Закрытие как вопрос поддержки. Направляйте общие вопросы поддержки, подобные этому, в соответствующий канал поддержки, см. Https://github.com/angular/protractor/blob/master/CONTRIBUTING.md#questions

Я решил эту проблему с помощью этого кода:

var data = fs.readFileSync(filePath,'utf8')
var element = browser.findElement(By.tagName("textarea"));
browser.executeScript("arguments[0].value = arguments[1];", element, data);

Спасибо за помощь! : +1:

Была ли эта страница полезной?
0 / 5 - 0 рейтинги