Klicken Sie auf Link zum Kills -Test
-
27-09-2019 - |
Frage
Der folgende Befehl
selenium.click("link=Identify Awards");
Öffnet ein Popup, aber der Test wird nicht fortgesetzt
Ich habe platziert
selenium.waitForPopUp(null, "1500");
selenium.windowFocus();
selenium.selectPopUp("Search -- Webpage Dialog");
Nach dem Befehl klick ohne Verfügbarkeit ist der Link zu einer Java -Funktion.
Ich weiß, dass dieser Befehl auf einen Link, eine Schaltfläche, ein Kontrollkästchen oder ein Optionsfeld klickt. Wenn die Klickaktion dazu führt, dass eine neue Seite geladen wird (wie ein Link normalerweise), rufen Sie anwaitForPageToLoad
. ich glaube, dass der waitforPageToLoad
Registriert das Popup -Laden nicht
Aktualisieren
Ich habe Folgendes ausprobiert
selenium.fireEvent("link=Identify Awards", "onClick");
und bekommen die folgenden
Das Popup steht auf einer anderen Domäne, könnte dies die Ursache sein?
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)
Lösung
verwenden selenium.selectWindow
So wählen Sie Popup aus und verwenden Sie dann selenium.selectWindow(null)
So wählen Sie das Basisfenster. Sie haben nicht als welche Art von Popup beschrieben. Ist ein Bestätigungsfeld oder ein Rahmen oder ein Modelldialog oder einfach ein anderes Fenster. Selen unterscheidet sich bei der Behandlung all dieser
Andere Tipps
Ich habe festgestellt, dass beim Auslösen von JavaScript in bestimmten Seleniums Klickfunktion bei einigen Gelegenheiten nicht den Befehl Elemente Onclick ordnungsgemäß aufgerufen wird, und dies könnte das Problem sein, auf das Sie stoßen.
Wenn dies die folgende Verwendung verwendet, um das Onclick -Ereignis explizit zu entlassen:
selenium.fire_event("link=Identify Awards", "onClick")
Ich hoffe, das hilft.