tablePage = startPage.doSomeThing();
об’єкт цієї сторінки повинен звідкись взятися. на гітхабі є навчальний проект, він простий і відкритий. Подивіться як будується pageObject, і як його використовують тести
Знову ж таки - без стектрейсу це вгадування.
Спробуйте так:
@BeforeClass
public void openTable() {
open(baseUrl + "/dbe.jsp?warehouseId=" + getWarehouseIdCRM() + "&tableId=757");
$(withText("Accounts")).shouldBe(visible);
tablePage = new TablePage(); //або tablePage = page(TablePage.class); - метод page мабуть є сенс використовувати тільки коли самі PageObjects в стилі PageFactory (з філдами - вебелементами), без цього виконається той самий new TablePage() тільки через reflection
}
org.testng.TestNGException:
Cannot instantiate class com.logivations.w2mo.ui.crm.dbe.tableactions.crm.TestDBETableActionsAccountsTable
at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:40)
at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:377)
at org.testng.internal.ClassHelper.createInstance(ClassHelper.java:290)
at org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:125)
at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:190)
at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:130)
at org.testng.TestRunner.initMethods(TestRunner.java:424)
at org.testng.TestRunner.init(TestRunner.java:247)
at org.testng.TestRunner.init(TestRunner.java:217)
at org.testng.TestRunner.<init>(TestRunner.java:161)
at org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:556)
at org.testng.SuiteRunner.init(SuiteRunner.java:168)
at org.testng.SuiteRunner.<init>(SuiteRunner.java:117)
at org.testng.TestNG.createSuiteRunner(TestNG.java:1319)
at org.testng.TestNG.createSuiteRunners(TestNG.java:1306)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1160)
at org.testng.TestNG.run(TestNG.java:1064)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:29)
... 23 more
Caused by: java.lang.RuntimeException: Failed to create new instance of class com.logivations.w2mo.ui.pages.dbe.tables.TablePage
at com.codeborne.selenide.Selenide.page(Selenide.java:562)
at com.logivations.w2mo.ui.crm.dbe.tableactions.crm.TestDBETableActionsAccountsTable.<init>(TestDBETableActionsAccountsTable.java:20)
... 28 more
Caused by: java.lang.InstantiationException
at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:48)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at com.codeborne.selenide.Selenide.page(Selenide.java:560)
... 29 more
И не стоит писать проевор в прекондишонах, хотя дело вкуса в целом. Но если у тебя для тест сценария откроется не нужная страница, то тест в любом случае упадёт. Но при этом упадёт тест, а не прекондишн
в метод open() можно не указывать baseUrl, Селенид автоматически подставляет значение baseUrl если в метод передаётся значение не начинающееся с https|http|file…
Что выполняется getWarehouseIdCRM() может не корректное значение возвращается?
Попробуй аннотировать класс с тестом @Listeners({GlobalTextReport.class}). Увидишь какой урл открывается
Выложи ка сюда stacktrace того, что отображается в логе