2010-11-22 10 views
0

Der folgende BefehlEin Klick Link tötet Test

selenium.click("link=Identify Awards"); 

jedoch ein Popup öffnet die den Test nicht weiter

I

selenium.waitForPopUp(null, "1500"); 
selenium.windowFocus(); 
selenium.selectPopUp("Search -- Webpage Dialog"); 

Nach dem Klick-Befehl ohne Erfolg die gesetzt haben Link ist zu einem geht 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 zum Laden einer neuen Seite führt (wie bei einem Link normalerweise), rufen Sie . denke ich, dass die waitforPageToLoad nicht wird das Popup-Laden Registrierung

aktualisieren

ich die

selenium.fireEvent("link=Identify Awards", "onClick"); 

und bekam die folgende

Das Popup auf einer anderen Domäne folgende versucht könnte, ist 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) 

Antwort

1

Verwenden Sie selenium.selectWindow, um Popup auszuwählen, und verwenden Sie dann selenium.selectWindow(null), um das Basisfenster auszuwählen. Sie haben nicht beschrieben, welche Art von Popup es ist. Ist eine Bestätigungsbox oder ein Rahmen oder ein Modelldialog oder einfach ein anderes Fenster. Selen unterscheiden sich in der Behandlung von all diesen

1

Ich habe, dass, wenn Sie Javascript auslösenden insbesondere Selen die Klick-Funktion bei einigen Gelegenheiten gefunden, die Elemente richtig ONCLICK Befehl nicht aufrufen und dies könnte das Problem sein Sie stoßen.

Wenn ja versuchen, die folgende Verwendung des OnClick-Ereignis explizit Feuer:

selenium.fire_event("link=Identify Awards", "onClick") 

Hoffnung, das hilft.

+0

danke für Ihren Vorschlag redrah – user515867

+0

gerade entdeckt, dass das Popup, das öffnet, ist ein modales Dialogfeld – user515867

Verwandte Themen