Нажатие на ссылку убивает тест
-
27-09-2019 - |
Вопрос
Следующая команда
selenium.click("link=Identify Awards");
открывает всплывающее окно, однако тест не продолжается
Я поместил
selenium.waitForPopUp(null, "1500");
selenium.windowFocus();
selenium.selectPopUp("Search -- Webpage Dialog");
После команды click безрезультатно ссылка в a java функции.
Я знаю, что эта команда нажимает на ссылку, кнопку, флажок или переключатель. Если действие Click вызывает загрузку новой страницы (например, ссылка обычно делает), вызов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 в частности функция щелчка Selenium не вызывает правильную команду элементов onclick правильно, и это может быть проблема, которую вы столкнулись.
Если это так, попробуйте использовать следующее, чтобы явно уволить событие onClick:
selenium.fire_event("link=Identify Awards", "onClick")
Надеюсь, это поможет.