سؤال

نحن تشغيل السيلينيوم الانحدار الاختبارات ضد الموجودة لدينا قاعدة القانون ، وبعض الشاشات في التطبيق على شبكة الإنترنت استخدام pop-ups خطوات وسيطة.

حاليا نحن نستخدم الأوامر في الاختبار:

// force new window to open at this point - so we can select it later
selenium().getEval("this.browserbot.getCurrentWindow().open('', 'enquiryPopup')");
selenium().click("//input[@value='Submit']");
selenium().waitForPopUp("enquiryPopup", getWaitTime());
selenium().selectWindow("enquiryPopup");

...التي تعمل معظم الوقت.أحيانا الاختبار سوف تفشل على waitForPopUp() خط مع

com.thoughtworks.selenium.SeleniumException: Permission denied

يمكن لأي شخص أن يقترح ، موثوق بها الطريقة ؟

أيضا, نحن في المقام الأول إجراء هذه الاختبارات على IE6 و 7.

هل كانت مفيدة؟

المحلول

يعمل!!فقط لجعله أسهل بالنسبة للأشخاص الذين يفضلون selenese.

بالنسبة لي فقد عملت باستخدام IE7(الوضع العادي).

ما ينقط من المتاعب.شكرا السباغيتي الوحش في السماء أو ليس هناك طريقة كنت قد حصلت على هذا العمل في IE.

<tr>
    <td>getEval</td>
    <td>selenium.browserbot.getCurrentWindow().open('', 'windowName');</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>buttonName</td>
    <td></td>
</tr>
<tr>
    <td>windowFocus</td>
    <td>windowName</td>
    <td></td>
</tr>
<tr>
    <td>waitForPopUp</td>
    <td>windowName</td>
    <td>3000</td>
</tr>
<tr>
    <td>selectWindow</td>
    <td>windowName</td>
    <td></td>
</tr>

نصائح أخرى

إذا كنت تقوم بتشغيل في *iehta الوضعية إذا كنت تنوي تشغيل في بعض الأخطاء هنا وهناك.نحن تشغيل السيلينيوم في عملي و يبدو أن هناك الكثير من القضايا مع إنترنت إكسبلورر و اياكس.

ومع ذلك ، يبدو أن هذه المسألة كنت تقوم بتشغيل إلى واحد حيث السيلينيوم هو محاولة الوصول إلى عنصر في نافذة أخرى قبل ذلك تماما الأحمال.أنا لست متأكدا ما الافتراضي الخاص بك مهلة مجموعة مجموعة ، ولكن قد تحتاج إلى محاولة زيادة 60 (60000ms) ثانية أو نحو ذلك للحصول على الماضي هذه المسألة.

بخلاف ذلك أود أن أقترح تشغيل الاختبارات في فايرفوكس (باستخدام *الكروم) كما أنها تنتج أكثر موثوقية النتائج, ولكن في بعض الأحيان هو ببساطة غير ممكن بسبب متطلبات العمل.

أنا فقط تجربتها أخرى إضافة السيلينيوم وظيفة ، windowFocus():

// force new window to open at this point - so we can select it later
selenium().getEval("this.browserbot.getCurrentWindow().open('', 'enquiryPopup')");
selenium().click("//input[@value='Submit']");
selenium().windowFocus("enquiryPopup");
selenium().waitForPopUp("enquiryPopup", getWaitTime());
selenium().selectWindow("enquiryPopup");

الاختبار نجحت عندما ركضت محليا ، ولكن فقط مع كل تلك المكالمات الأسلوب - إنشاء/التركيز/الانتظار/حدد.

أنا عن السماح ببناء server تشغيل جميع الاختبارات ، إذا أن ينجح أيضا سأكون جعل وظيفة المكتبة من ذلك...!

أنا في حاجة إلى تحديد iframe داخل نافذة منبثقة و ملء استمارة.لدي مشكلة في استخدام selectWindow cmd حيث السيلينيوم لم أجد iframe ، لذلك أزلت الأمر.

هذا selenese عملت بشكل جيد بالنسبة لي (حيث iframe عنوان معرف = account_frame) :

<tr>
  <td>click</td>
  <td>//a[@class='item_add']</td>
  <td></td>
</tr>
<tr>
  <td>windowFocus</td>
  <td>account_frame</td>
  <td></td>
</tr>
<tr>
  <td>waitForPopUp</td>
  <td>account_frame</td>
  <td>10000</td>
</tr>

حاول إضافة بعض الانتظار البيانات حول المكالمات التي تسبب لك المشكلات.

لدي نفس الأخطاء قبل و الطريقة الوحيدة التي تمكنت من موثوق حل لهم بإجراء مكالمات النظام.خيوط.الخيط.Sleep(5000)..

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top