Fare clic su Link Kills Test
-
27-09-2019 - |
Domanda
Il seguente comando
selenium.click("link=Identify Awards");
Apre un popup, tuttavia il test non continua
Ho messo
selenium.waitForPopUp(null, "1500");
selenium.windowFocus();
selenium.selectPopUp("Search -- Webpage Dialog");
Dopo il comando Click inutile, il collegamento è a una funzione Java.
So che questo comando fa clic su un link, un pulsante, una casella di controllo o un pulsante di opzione. Se l'azione clicca provoca il caricamento di una nuova pagina (come un link di solito), chiamawaitForPageToLoad
. Penso che il waitforPageToLoad
non sta registrando il caricamento popup
Aggiornare
Ho provato quanto segue
selenium.fireEvent("link=Identify Awards", "onClick");
E ho ottenuto quanto segue
Il popup è su un altro dominio potrebbe essere la causa?
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)
Soluzione
uso selenium.selectWindow
Per selezionare popup e quindi utilizzare selenium.selectWindow(null)
Per selezionare la finestra di base. Non hai descritto come tipo di popup. È una casella di conferma o una cornice o una finestra di dialogo del modello o semplicemente un'altra finestra. Il selenio differisce nel trattamento di tutti questi
Altri suggerimenti
Ho scoperto che in alcune occasioni in cui attivare JavaScript in particolare la funzione Click di Selenium non invoca correttamente gli elementi OnClick e questo potrebbe essere il problema che stai riscontrando.
In tal caso, prova a usare quanto segue per licenziare esplicitamente l'evento OnClick:
selenium.fire_event("link=Identify Awards", "onClick")
Spero possa aiutare.