Я разрабатываю тесты Selenium для приложения Oracle ADF.
Я использую для этого:
- Установка JDeveloper fmw_12.2.1.3.0_bpmqs
- Очень полезная библиотека SelniumTools
И я столкнулся с проблемой:
SelniumTools на основе adf-richclient-Automation-11.jar , который распространяется с JDeveloper (использовать можно найти в * Oracle_Home \ oracle_common \ modules \ oracle.adf. view * folder) и описывается в документации как Oracle Customized Selenium.
И все отлично работает с библиотекой selenium-java до 2.53.1 версии.
Но когда я обновляю библиотеку selenium-java до 3.3.1 версии, мой тестовый проект падает с исключением:
org.openqa.selenium.WebDriverException: java.lang.NoSuchMethodError: org.openqa.selenium.support.ui.**WebDriverWait.until(Lcom/google/common/base/Function;)Ljava/lang/Object;** Build info: version: 'unknown', revision: '5234b32', time: '2017-03-10 09:00:17 -0800' System info: host: 'EE-LATITUDE-749', ip: '10.10.207.64', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_172' Driver info: driver.version: unknown
com.redheap.selenium.junit.PageProvider.createPage(PageProvider.java:49)
com.redheap.selenium.junit.PageProvider.goHome(PageProvider.java:36)
ru.russvet.selenium.tests.P6_ProcessPageTest.(P6_ProcessPageTest.java:38)
java.lang.reflect.Constructor.newInstance(Constructor.java:423)
Caused by: java.lang.NoSuchMethodError: org.openqa.selenium.support.ui.WebDriverWait.until(Lcom/google/common/base/Function;)Ljava/lang/Object;
oracle.adf.view.rich.automation.selenium.RichWebDrivers.waitForServer(RichWebDrivers.java:112)
oracle.adf.view.rich.automation.selenium.RichWebDrivers.waitForRichPageToLoad(RichWebDrivers.java:175)
oracle.adf.view.rich.automation.selenium.RichWebDrivers.waitForRichPageToLoad(RichWebDrivers.java:158)
com.redheap.selenium.page.Page.(Page.java:53)
com.redheap.selenium.page.Page.(Page.java:45)
ru.russvet.selenium.pages.BPMWorkspaceLoginPage.(BPMWorkspaceLoginPage.java:19)
com.redheap.selenium.junit.PageProvider.createPage(PageProvider.java:47)
Расследования следуют причине:
1) в библиотеке селена-java начиная с 3.3.1 интерфейс для до функция была изменена и принимает Функция, Предикат или Поставщик классы из библиотека Java 8 вместо библиотека Guava https://github.com/SeleniumHQ/selenium/commit/b2aa9fd534f7afbcba319231bb4bce85f825ef09:
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.function.Supplier;
2) что, вероятно, можно обойти с недавним выпуском гуавы (версия 21+), где версии Google и Function, и Predicate расширяют эквиваленты Java 8
Итак, похоже, что adf-richclient-Automation-11.jar построен с библиотекой selenium-java 2.x , и это вызывает исключение во время выполнения тесты.
Мы подняли его через службу поддержки Oracle, но от них пока нет информации о новой версии этой библиотеки.
Итак, мои вопросы:
1) Каков возможный способ перестроить adf-richclient-Automation-11.jar , чтобы сделать его совместимым с последней версией selenium-java 3.x?
2) Кто-нибудь нашел более новую версию adf-richclient-Automation-11.jar в каком-то конкретном дистрибутиве JDeveloper?