Chrome에서 Selenium WebDriver 테스트 사례를 실행하는 방법은 무엇입니까?
나는 이것을 시도했다
WebDriver driver = new ChromeDriver();
하지만 오류가 발생합니다.
실패한 테스트 : setUp (com.TEST) : 드라이버 실행 파일의 경로는 webdriver.chrome.driver 시스템 속성으로 설정해야합니다. 자세한 내용은 여기 코드를 참조 하십시오 . 최신 버전은 링크 에서 다운로드 할 수 있습니다
Chrome에서 Selenium-WebDriver 테스트 사례를 테스트하려면 어떻게해야합니까?
ChromeDriver 다운로드 에서 실행 가능 드라이버를 다운로드해야합니다.
그런 다음 드라이버 오브젝트를 작성하기 전에 다음을 사용하면됩니다 (이미 올바른 순서로 표시됨).
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
WebDriver driver = new ChromeDriver();
ChromeDriver 설명서의 가장 유용한 안내서에서 발췌 한 것 입니다.
Chrome 드라이버에서 Chrome 드라이버 의 업데이트 버전을 다운로드 하십시오. 릴리스 노트도 여기를 읽으십시오. Chrome 브라우저가 업데이트 된 경우 새 브라우저 버전으로 압축 할 수 있으므로 위 링크에서 새 chormedriver를 다운로드해야합니다.
public class chrome
{
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
}
}
폴더에 chromeDriver를 다운로드하고이 폴더를 PATH 변수에 추가해야합니다. 콘솔을 다시 시작해야 작동합니다.
MacOS에서 homebrew를 사용하는 경우 다음 명령을 사용할 수 있습니다.
(편집) :brew tap homebrew/cask && brew cask install chromedriver
다른 구성없이 그 후에 잘 작동합니다.
크롬 드라이버를 설치해야합니다. 아래와 같이 너깃을 사용하여이 패키지를 설치할 수 있습니다
chromedriver
여기 에서 최신 버전을 찾으 십시오 . 일단 다운로드되면 파이썬 설치 루트에서 압축을 풉니 다 (예 :) C:/Program Files/Python-3.5
. 어디에서나 경로를 지정하거나 경로 등에 추가 chromedriver
할 필요가 없습니다 . 방금 깨끗한 Python 설치 에서이 작업을 수행했습니다.
아래 코드를 사용하여 Selenium 웹 드라이버를 사용하여 Chrome에서 테스트 사례를 실행할 수 있습니다.
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class ChromeTest {
/**
* @param args
* @throws InterruptedException
* @throws IOException
*/
public static void main(String[] args) throws InterruptedException, IOException {
// Telling the system where to find the Chrome driver
System.setProperty(
"webdriver.chrome.driver",
"E:/chromedriver_win32/chromedriver.exe");
WebDriver webDriver = new ChromeDriver();
// Open google.com
webDriver.navigate().to("http://www.google.com");
String html = webDriver.getPageSource();
// Printing result here.
System.out.println(html);
webDriver.close();
webDriver.quit();
}
}
최신 버전의 크롬 드라이버를 다운로드하고 다음 코드를 사용하십시오.
System.setProperty("webdriver.chrome.driver", " path of chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.manage().window().maximize();
Thread.sleep(10000);
driver.get("http://stackoverflow.com");
위의 모든 대답은 정확합니다. 다음은 문제와 해결책에 대한 약간의 잠수입니다.
예를 들어 셀레늄의 드라이버 생성자
WebDriver driver = new ChromeDriver();
드라이버 실행 파일을 검색합니다 (이 경우 크롬 드라이버는 서비스가 예외를 던진 실행 파일을 찾을 수없는 경우에 크롬 드라이버 실행 파일을 검색합니다)
this is where the exception comes from (note the check state method)
/**
*
* @param exeName Name of the executable file to look for in PATH
* @param exeProperty Name of a system property that specifies the path to the executable file
* @param exeDocs The link to the driver documentation page
* @param exeDownload The link to the driver download page
*
* @return The driver executable as a {@link File} object
* @throws IllegalStateException If the executable not found or cannot be executed
*/
protected static File findExecutable(
String exeName,
String exeProperty,
String exeDocs,
String exeDownload) {
String defaultPath = new ExecutableFinder().find(exeName);
String exePath = System.getProperty(exeProperty, defaultPath);
checkState(exePath != null,
"The path to the driver executable must be set by the %s system property;"
+ " for more information, see %s. "
+ "The latest version can be downloaded from %s",
exeProperty, exeDocs, exeDownload);
File exe = new File(exePath);
checkExecutable(exe);
return exe;
}
Following is the check state method which throws the exception
/**
* Ensures the truth of an expression involving the state of the calling instance, but not
* involving any parameters to the calling method.
*
* <p>See {@link #checkState(boolean, String, Object...)} for details.
*/
public static void checkState(
boolean b,
@Nullable String errorMessageTemplate,
@Nullable Object p1,
@Nullable Object p2,
@Nullable Object p3) {
if (!b) {
throw new IllegalStateException(format(errorMessageTemplate, p1, p2, p3));
}
}
SOLUTION: set the system property before creating driver object as follows
System.setProperty("webdriver.gecko.driver", "path/to/chromedriver.exe");
WebDriver driver = new ChromeDriver();
following is the code snippet (for chrome and firefox) where the driver service searches for the driver executable:
Chrome:
@Override
protected File findDefaultExecutable() {
return findExecutable("chromedriver", CHROME_DRIVER_EXE_PROPERTY,
"https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver",
"http://chromedriver.storage.googleapis.com/index.html");
}
FireFox:
@Override
protected File findDefaultExecutable() {
return findExecutable(
"geckodriver", GECKO_DRIVER_EXE_PROPERTY,
"https://github.com/mozilla/geckodriver",
"https://github.com/mozilla/geckodriver/releases");
}
where CHROME_DRIVER_EXE_PROPERTY = "webdriver.chrome.driver" and GECKO_DRIVER_EXE_PROPERTY = "webdriver.gecko.driver"
similar is the case for other browsers, following is the snapshot of the list of the available browser implementation
On Ubuntu, you can simply install the chromium-chromedriver
package:
apt install chromium-chromedriver
Be aware that this also installs an outdated selenium version. To install the latest selenium:
pip install selenium
Download the exe of chromedriver and extract it on current project location. Here the link, where we can download the latest version of chromedriver.
https://sites.google.com/a/chromium.org/chromedriver/
Here the simple code for the launch browser and navigate to url.
System.setProperty("webdriver.chrome.driver", "path of chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://any_url.com");
참고URL : https://stackoverflow.com/questions/13724778/how-to-run-selenium-webdriver-test-cases-in-chrome
'Programing' 카테고리의 다른 글
C ++의 스택, 정적 및 힙 (0) | 2020.06.07 |
---|---|
Javascript-문서가로드되었는지 감지하는 방법 (IE 7 / Firefox 3) (0) | 2020.06.07 |
파이썬 : 룩업 테이블에 대한 목록 대 Dict (0) | 2020.06.07 |
#ifdef에 'or'조건을 추가하는 방법 (0) | 2020.06.07 |
ASP.NET WebAPI에서 파일 (FileContentResult)을 반환하는 방법 (0) | 2020.06.07 |