你好。 为了进行测试,我需要在输入字段中插入100 000个字符。 问题在于sendKeys()无法处理如此大量的数据,并且浏览器冻结。 它开始将输入数据输入到文本字段,然后在一段时间停止响应后,由于超时而导致测试失败。
我尝试了不同的方法来解决此问题,例如将文件分成几部分,但它甚至不能处理3万个字符。
手动地,我只是将数据从文本编辑器复制粘贴到该字段,并且效果很好。
有人有解决方案如何在文本字段中插入10万个字符?
谢谢!
代码:
var fs = require('fs');
var path = require('path');
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(“ Submit”))。click();
WebDriver的sendKeys实际上并不是要处理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: