النقر فوق الارتباط يقتل الاختبار
-
27-09-2019 - |
سؤال
الأمر التالي
selenium.click("link=Identify Awards");
يفتح نافذة منبثقة ولكن الاختبار لا يستمر
لقد وضعت
selenium.waitForPopUp(null, "1500");
selenium.windowFocus();
selenium.selectPopUp("Search -- Webpage Dialog");
بعد أمر النقر دون جدوى ، يتم الانتقال إلى وظيفة Java.
أعلم أن هذا الأمر ينقر على رابط أو زر أو مربع اختيار أو زر الراديو. إذا تسببت إجراء النقر في حدوث صفحة جديدة (مثلما يحدث الرابط عادةً) ، فاتصلwaitForPageToLoad
. أعتقد أن waitforPageToLoad
لا يسجل التحميل المنبثق
تحديث
حاولت ما يلي
selenium.fireEvent("link=Identify Awards", "onClick");
وحصلت على ما يلي
المنبثقة في مجال آخر يمكن أن يكون هذا هو السبب؟
Exception in thread "Main Thread" org.openqa.selenium.ie.UnexpectedJavascriptExecutionException: Cannot execute script
System info: os.name: 'Windows Vista', os.arch: 'x86', os.version: '6.1', java.version: '1.5.0_12'
Driver info: driver.version: ie
at org.openqa.selenium.ie.ErrorHandler.verifyErrorCode(ErrorHandler.java:70)
at org.openqa.selenium.ie.InternetExplorerDriver.executeScript(InternetExplorerDriver.java:205)
at org.openqa.selenium.internal.seleniumemulation.JavascriptLibrary.callEmbeddedSelenium(JavascriptLibrary.java:47)
at org.openqa.selenium.internal.seleniumemulation.FireEvent.handleSeleneseCommand(FireEvent.java:35)
at org.openqa.selenium.internal.seleniumemulation.FireEvent.handleSeleneseCommand(FireEvent.java:1)
at org.openqa.selenium.internal.seleniumemulation.SeleneseCommand.apply(SeleneseCommand.java:33)
at org.openqa.selenium.internal.seleniumemulation.Timer.run(Timer.java:47)
at org.openqa.selenium.WebDriverCommandProcessor.execute(WebDriverCommandProcessor.java:277)
at org.openqa.selenium.WebDriverCommandProcessor.doCommand(WebDriverCommandProcessor.java:209)
at com.thoughtworks.selenium.DefaultSelenium.fireEvent(DefaultSelenium.java:201)
المحلول
استعمال selenium.selectWindow
لتحديد المنبثقة ثم الاستخدام selenium.selectWindow(null)
لتحديد نافذة قاعدة. لم تصف أي نوع من المنبثقة. هو مربع تأكيد أو إطار أو مربع حوار طراز أو ببساطة نافذة أخرى. السيلينيوم يختلف في علاج كل هؤلاء
نصائح أخرى
لقد وجدت أنه في بعض المناسبات عند تشغيل JavaScript على وجه الخصوص ، لا تستدعي وظيفة النقرات السيلينيوم أمر OnClick بشكل صحيح وقد تكون هذه هي المشكلة التي تواجهها.
إذا كان الأمر كذلك ، فحاول استخدام ما يلي لإطلاق حدث Onclick بشكل صريح:
selenium.fire_event("link=Identify Awards", "onClick")
امل ان يساعد.