Разрешил проблему следующим способом.
Создал класc Page, в котором объявил вебдрайвер приветом, добавил конструктор для установки драйвера при создании страницы. В классе управления страницей создал объект Page, и создал конструктор для класса управления через который передаю объекту Page вебдрайвер. С помощью такого подхода я добился того, что драйвер закрыт со всех сторон и его можно вызвать только через класс управление, что исключает неправильное обращение с фреймверком.
Сам код(в дальнейшем когда я решу все проблемы и пересоберу в MAVEN поделюсь готовым решением):
Реализация класса страницы.
import org.openqa.selenium.WebDriver;
public class Page {
private WebDriver driver;
public Page( WebDriver driver){
this.driver= driver;
}
public WebDriver getPageDriver() {
return this.driver;
}
}
Реализация класса управления.
import org.openqa.selenium.WebDriver;
public class FrameManagement {
private Page Page;
public FrameManagement(WebDriver driver){
this.Page = new Page(driver);
}
private WebDriver getPage(){
return this.Page.getPageDriver();
}
public void getPageToUrl(String URL){
getPage().get("s");
}
}
Реализация класса самого теста
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.internal.ProfilesIni;
public class RegionSearchTest {
public static void main( String[] args){
ProfilesIni profiles = new ProfilesIni();
FirefoxProfile profileFirefox = profiles.getProfile("TestQA");
FrameManagement mgr = new FrameManagement(new FirefoxDriver(profileFirefox));
mgr.getPageToUrl("http://www.yandex.ru");
}
}
Вот такой вот способ, но от не доработан.
Проблема в том что при такой реализации построения фреймверка проект компилируются и запускается, открывается браузер с пустой страницей без указанного мной URL.
Стек ошибки:
"C:\Program Files\Java\jdk1.8.0_91\bin\java" -Didea.launcher.port=7541 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.1.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_91\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_91\jre\lib\rt.jar;C:\Users\****\Dropbox\test\out\production\test;C:\Users\****\Dropbox\selenium-server-standalone-2.53.0.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.1.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain RegionSearchTest
Exception in thread "main" org.openqa.selenium.WebDriverException: Target URL s is not well-formed.
Command duration or timeout: 167 milliseconds
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 17:00:58'
System info: host: '____________', ip: '***.168.0.121', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_91'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{applicationCacheEnabled=true, rotatable=false, handlesAlerts=true, databaseEnabled=true, version=46.0, platform=WINDOWS, nativeEvents=false, acceptSslCerts=true, webStorageEnabled=true, locationContextEnabled=true, browserName=firefox, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: 080544f7-80d2-4ea7-86db-45c2fe1d24be
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:423)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:316)
at FrameManagement.getPageToUrl(FrameManagement.java:17)
at RegionSearchTest.main(RegionSearchTest.java:17)
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:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: org.openqa.selenium.WebDriverException: Target URL s is not well-formed.
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 17:00:58'
System info: host: '___________', ip: '***.168.0.121', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_91'
Driver info: driver.version: unknown
at <anonymous class>.FirefoxDriver.prototype.get(file:///C:/Users/*******~1/AppData/Local/Temp/anonymous5143472155413947786webdriver-profile/extensions/fxdriver@googlecode.com/components/driver-component.js:10636)
at <anonymous class>.DelayedCommand.prototype.executeInternal_/h(file:///C:/Users/*******~1/AppData/Local/Temp/anonymous5143472155413947786webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12661)
at <anonymous class>.DelayedCommand.prototype.executeInternal_(file:///C:/Users/*******~1/AppData/Local/Temp/anonymous5143472155413947786webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12666)
at <anonymous class>.DelayedCommand.prototype.execute/<(file:///C:/Users/*******~1/AppData/Local/Temp/anonymous5143472155413947786webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12608)
Process finished with exit code 1
Как видно из ошибки проблема с передаваемым URL(звездочки и подчеркивания добавлены на правах конфиденциальности). Я так понял что в процессе решение данной задачи я потерял управление над драйвером(если я правильно понял), возможно я что то упустил из понятий ООП( тестеровщики в них не очень хорошо разбираются ).
Кто то может подсказать, что я упустил?