Clicar em Link Kills Test
-
27-09-2019 - |
Pergunta
O seguinte comando
selenium.click("link=Identify Awards");
abre um pop -up, no entanto, o teste não continua
Eu coloquei
selenium.waitForPopUp(null, "1500");
selenium.windowFocus();
selenium.selectPopUp("Search -- Webpage Dialog");
Após o comando de clique, sem aproveitar, o link é para uma função Java.
Sei que este comando clica em um link, botão, caixa de seleção ou botão de rádio. Se a ação de clique fizer com que uma nova página seja carregada (como um link normalmente), liguewaitForPageToLoad
. Eu acho que o waitforPageToLoad
não está registrando o carregamento pop -up
Atualizar
Eu tentei o seguinte
selenium.fireEvent("link=Identify Awards", "onClick");
e obteve o seguinte
O pop -up está em outro domínio, essa poderia ser a 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)
Solução
usar selenium.selectWindow
para selecionar pop -up e depois usar selenium.selectWindow(null)
para selecionar a janela base. Você não descreveu como que tipo de pop -up é. É uma caixa de confirmação ou um quadro ou uma caixa de diálogo modelo ou simplesmente outra janela. O selênio difere no tratamento de tudo isso
Outras dicas
Descobri que em algumas ocasiões ao desencadear o JavaScript, em particular, a função de clique do Selenium não invoca os elementos OnClick Command corretamente e esse pode ser o problema que você está encontrando.
Nesse caso, tente usar o seguinte para disparar explicitamente o evento OnClick:
selenium.fire_event("link=Identify Awards", "onClick")
Espero que ajude.