셀레늄 테스트를 위해 eclipse/java에서 프로젝트를 만들려고합니다.Mac에서 원격 테스트를 위해 Java에서 Selenium ChromeDriver 설정
저는 셀렌 그리드의 허브이기도 한 Windows 컴퓨터에서이 작업을 수행하고 있습니다.
Mac 인 원격 컴퓨터에서 테스트를 실행하고 싶습니다. 내 프로젝트에서
,이 같은 webdriver 설정하는 경우 :
System.setProperty("webdriver.chromeDriver.driver",
"C:\\SeleniumGrid\\chromeDriver\\chromedriver.exe"
그 경로를 잘 내 원격/맥에 chromedriver를 가리키는되어야한다?
mac에는 크롬이 이미 설치되어 있습니다. 나는 여기에 해당 시스템의 chromedriver 발견 /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
을하지만, 내가 이런 식으로 설정하는 경우 :
System.setProperty("webdriver.chromeDriver.driver",
"/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome");
ChromeOptions options = new ChromeOptions();
cap.setCapability(ChromeOptions.CAPABILITY, options);
cap = DesiredCapabilities.chrome();
cap.setBrowserName("chrome");
cap.setPlatform(Platform.MAC);
cap.setJavascriptEnabled(true);
newDriver = new RemoteWebDriver(new URL(
"http://999.999.9.99:9999/wd/hub"), cap);
을 나는이 줄에 널 포인터 예외를 얻을 :
cap.setCapability(ChromeOptions.CAPABILITY, options);
확실하지 내가 여기서 잘못하고있어. 죄송 해요, 셀레늄을 처음 접했어. 어떤 아이디어라도 높이 평가할 것입니다.
편집 : 여기 허브 나 코드가 상주하는 시스템에서 실행되는 스택 트레이스
[TestNG] Running:
[ThreadUtil] Starting executor timeOut:2147483647ms workers:1 threadPoolSize:3
FAILED CONFIGURATION: @BeforeClass setUp("chrome")
java.lang.NullPointerException
at selenium.helper.WebUtils.setUpRemoteDriver(WebUtils.java:74)
at selenium.testNG.TestNikeCareerSearch.setUp(TestNikeCareerSearch.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:175)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:107)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.access$0(SuiteRunner.java:333)
at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
SKIPPED CONFIGURATION: @AfterClass tearDown
stacktrace를 추가 할 수 있습니까? 게다가 \\ in 경로는 왜? '/'만 사용하십시오 – Smit
@이 페이지 (https://code.google.com/p/selenium/wiki/ChromeDriver )가 그 위치에서 크롬 " "이클립스에서는 추가"\ "를 추가 할 때까지"유효하지 않은 이스케이프 시퀀스 "오류가 발생했습니다 – user1988594
원격으로 실행하려하지 않았지만 크롬 드라이버를 정의 된 폴더에 넣으려고했습니다. 경로? webdriver.chromeDriver.driver를 설정하지 않고 –