Protractor: 10万文字のテストデータをテキストフィールドに挿入できません

作成日 2015年09月23日  ·  3コメント  ·  ソース: angular/protractor

こんにちは。 テストの目的で、入力フィールドに100000文字を挿入する必要があります。 問題は、 sendKeys()がそのような量のデータを処理できず、ブラウザーがフリーズすることです。 テキストフィールドへの入力データを開始し、しばらくすると応答が停止し、タイムアウトのためにテストが失敗します。

この問題を解決するために、ファイルをいくつかの部分に分割するなど、さまざまな方法を試しましたが、30000文字も処理できません。

手動でテキストエディタからそのフィールドにデータをコピーして貼り付けるだけで、正常に機能します。

誰かがテキストフィールドに100000文字を挿入する方法を持っていますか?
ありがとうございました!

コード:
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();

question

全てのコメント3件

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:

このページは役に立ちましたか?
0 / 5 - 0 評価