내가 OOP 전문가 아닙니다 어쩌면 여기가 내가받지 오전 깊은 일이지만, 나에게 많이 괴롭히는 것입니다 :WebDriver 말도
내가 어떤 이유가 표시되지 않습니다 왜 Selenium WebDriver
에 대한 모든 예제 및 자습서 WebDriver
물체, 예를 들어 사용 : 위의 예에서
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com/");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
을, 우리는 WebDriver
TakesScreenshot
에 캐스팅을 위해 더 많은 코드를 추가해야합니다.
FirefoxDriver driver = new FirefoxDriver();
driver.get("http://www.google.com/");
File scrFile = driver.getScreenshotAs(OutputType.FILE);
(GhostDriver 제외) 모든 드라이버 개체를 추가로 좀 더 결국 모든 WebDriver
방법 +를 구현 : 우리가 직접 FirefoxDriver
개체를 사용할 수있을 때 왜 이렇게. 따라서 기본적으로 WebDriver
인터페이스를 간접적으로 구현하기 때문에 (을 상속하는 모든 드라이버가 WebDriver
인터페이스를 구현하기 때문에) WebDriver
개체가 필요하기 때문에 FirefoxDriver
또는 ChromeDriver
아무 곳이나 사용할 수 있습니까?
따라서 '실제'드라이버를 WebDriver
으로 생성하는 대신에 사용하고 주물로 코드를 복잡하게 만드는 등의 이유가 있습니까?
예를 들어 FirefoxDriver
대신 WebDriver
을 사용하는 것이 더 효과적인 경우 실용적인 예를 제공 할 수 있습니까?
기본적으로 인터페이스를 사용해야하는 이유는 기본적으로 다릅니다. 구체적인 예에서는별로 의미가 없지만 재구성하지 않고 실제로 어떤 드라이버를 사용해야하는지 설정할 수 있다고 가정합니다. 설정되어있는 것을 반환하는'WebDriver getConfiguredDriver()'와 같은 메소드를 가진'DriverProvider' 클래스가있을 수 있습니다. 그런 다음 'WebDriver driver = DriverProvider.getConfiguredDriver();'를 수행하고 완료하십시오. 나중에 'SafariDriver'를 추가하고 싶다면 다른 설정을 추가하기 만하면 나머지 코드는 변경할 필요가 없습니다. – Thomas
"FirefoxDriver 대신 WebDriver를 사용하는 것이 더 나은 경우 실용적인 예를 들어 주시겠습니까?" 파이어 폭스와 크롬에서 같은 테스트를하고 싶을 때. –
@ 토마스 귀하의 요지를 봅니다. 결론은 다음과 같습니다. 간단한 간단한 스크립트/프로그램을 사용하면 인터페이스에 대해 코딩 할 필요가 없지만 Selenium을 사용하여 일종의 프레임 워크를 작성한다면 인터페이스에 대해 코딩해야합니다. 동의하니? – CuriousGuy