مرحبا. لغرض الاختبار ، أحتاج إلى إدخال 100000 حرف في حقل الإدخال. تكمن المشكلة في أن sendKeys () لا يمكنه التعامل مع مثل هذه الكمية من البيانات ويتجمد المتصفح. يبدأ إدخال البيانات إلى حقل نصي ثم يستجيب بعد مرور بعض الوقت ويفشل الاختبار بسبب انتهاء المهلة.
لقد جربت طرقًا مختلفة لحل هذه المشكلة ، مثل تقسيم الملف على أجزاء قليلة لكنه لا يمكنه التعامل حتى مع 30000 حرف.
يدويًا ، أقوم فقط بنسخ البيانات من محرر النصوص إلى هذا الحقل وهو يعمل بشكل جيد.
هل لدى شخص ما الحل كيفية إدراج 100000 حرف في حقل النص؟
شكرا لك!
رمز:
var fs = يتطلب ('fs') ؛
var path = يتطلب ('path') ؛
var filePath = path.join (__ dirname، 'datafile.json') ؛
var data = يتطلب (filePath)
browser.findElement (By.tagName ("textarea")). sendKeys (data.cbb) ؛
browser.sleep (5000) ؛
browser.findElement (By.name ("إرسال")). انقر () ؛
لا يُقصد من webDriver's sendKeys حقًا التعامل مع 100000 ضغطة مفتاح. إنه يحاكي الأحداث محليًا ، لذلك يرسل طلبًا منفصلاً لكل شخصية فردية.
أفترض أنه يمكنك التغلب على هذا عن طريق تعيين النص مباشرة من خلال 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: