webdriver.Remote()를 사용하여 노드에서 크롬 세션을 시작하려고합니다. 브라우저를 시작할 수 없습니다. webdriver.Chrome()으로 작업 할 수 있지만 그리드에서는 사용할 수 없습니다.Selenium webdriver와 함께 Chrome 드라이버 사용 .Remote Python
노드와 허브가 클라이언트와 동일한 로컬 시스템에서 실행되고 있습니다. 다음은
13:29:28.442 INFO - Trying to create a new session on test slot {seleniumProtocol=WebDriver, se:CONFIG_UUID=5804e13e-503e-4490-99ef-7776c1579caf, browserName=chrome, maxInstances=5, platform=MAC}
13:35:08.137 INFO - Got a request to create a new session: Capabilities {browserName: chrome, version: }
13:35:08.137 INFO - Trying to create a new session on test slot {seleniumProtocol=WebDriver, se:CONFIG_UUID=5804e13e-503e-4490-99ef-7776c1579caf, browserName=chrome, maxInstances=5, platform=MAC}
: 여기
은 여기
Traceback (most recent call last):
File "RCTest.py", line 8, in <module>
desired_capabilities=webdriver.DesiredCapabilities.CHROME
File "/Users/admin/anaconda/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 154, in __init__
self.start_session(desired_capabilities, browser_profile)
File "/Users/admin/anaconda/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 243, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/Users/admin/anaconda/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 311, in execute
self.error_handler.check_response(response)
File "/Users/admin/anaconda/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 237, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot parse capability: goog:chromeOptions
from unknown error: cannot parse binary
from unknown error: must be a string
(Driver info: chromedriver=2.33.506106 (8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2),platform=Mac OS X 10.12.6 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 2 milliseconds
Build info: version: '3.8.0', revision: '924c4067df', time: '2017-11-30T11:37:19.049Z'
System info: host: 'MacM', ip: '192.168.1.18', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.6', java.version: '9.0.1'
Driver info: driver.version: unknown
Stacktrace:
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0 (NativeConstructorAccessorImpl.java:-2)
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance (Constructor.java:488)
at org.openqa.selenium.remote.ErrorHandler.createThrowable (ErrorHandler.java:214)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed (ErrorHandler.java:166)
at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$new$0 (JsonWireProtocolResponse.java:53)
at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$getResponseFunction$2 (JsonWireProtocolResponse.java:91)
at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0 (ProtocolHandshake.java:123)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:195)
at java.util.Spliterators$ArraySpliterator.tryAdvance (Spliterators.java:958)
at java.util.stream.ReferencePipeline.forEachWithCancel (ReferencePipeline.java:127)
at java.util.stream.AbstractPipeline.copyIntoWithCancel (AbstractPipeline.java:502)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:488)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:474)
at java.util.stream.FindOps$FindOp.evaluateSequential (FindOps.java:152)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.findFirst (ReferencePipeline.java:476)
at org.openqa.selenium.remote.ProtocolHandshake.createSession (ProtocolHandshake.java:126)
at org.openqa.selenium.remote.ProtocolHandshake.createSession (ProtocolHandshake.java:73)
at org.openqa.selenium.remote.server.ServicedSession$Factory.apply (ServicedSession.java:232)
at org.openqa.selenium.remote.server.ActiveSessionFactory.lambda$apply$11 (ActiveSessionFactory.java:167)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:195)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:195)
at java.util.stream.ReferencePipeline$11$1.accept (ReferencePipeline.java:375)
at java.util.stream.ReferencePipeline$2$1.accept (ReferencePipeline.java:177)
at java.util.Spliterators$ArraySpliterator.tryAdvance (Spliterators.java:958)
at java.util.stream.ReferencePipeline.forEachWithCancel (ReferencePipeline.java:127)
at java.util.stream.AbstractPipeline.copyIntoWithCancel (AbstractPipeline.java:502)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:488)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:474)
at java.util.stream.FindOps$FindOp.evaluateSequential (FindOps.java:152)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.findFirst (ReferencePipeline.java:476)
at org.openqa.selenium.remote.server.ActiveSessionFactory.apply (ActiveSessionFactory.java:170)
at org.openqa.selenium.remote.server.NewSessionPipeline.lambda$null$1 (NewSessionPipeline.java:44)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:195)
at java.util.Collections$2.tryAdvance (Collections.java:4734)
at java.util.stream.ReferencePipeline.forEachWithCancel (ReferencePipeline.java:127)
at java.util.stream.AbstractPipeline.copyIntoWithCancel (AbstractPipeline.java:502)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:488)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:474)
at java.util.stream.FindOps$FindOp.evaluateSequential (FindOps.java:152)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.findFirst (ReferencePipeline.java:476)
at org.openqa.selenium.remote.server.NewSessionPipeline.lambda$createNewSession$2 (NewSessionPipeline.java:47)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:195)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:195)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:195)
at java.util.stream.DistinctOps$1$2.accept (DistinctOps.java:175)
at java.util.stream.ReferencePipeline$2$1.accept (ReferencePipeline.java:177)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:195)
at java.util.stream.ReferencePipeline$2$1.accept (ReferencePipeline.java:177)
at java.util.stream.Streams$StreamBuilderImpl.tryAdvance (Streams.java:397)
at java.util.stream.Streams$ConcatSpliterator.tryAdvance (Streams.java:720)
at java.util.stream.ReferencePipeline.forEachWithCancel (ReferencePipeline.java:127)
at java.util.stream.AbstractPipeline.copyIntoWithCancel (AbstractPipeline.java:502)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:488)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:474)
at java.util.stream.FindOps$FindOp.evaluateSequential (FindOps.java:152)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.findFirst (ReferencePipeline.java:476)
at org.openqa.selenium.remote.server.NewSessionPipeline.createNewSession (NewSessionPipeline.java:50)
at org.openqa.selenium.remote.server.commandhandler.BeginSession.execute (BeginSession.java:77)
at org.openqa.selenium.remote.server.WebDriverServlet.lambda$handle$0 (WebDriverServlet.java:240)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:514)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at java.lang.Thread.run (Thread.java:844)
실패 허브 응답 때 여기
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time
driver = webdriver.Remote(
'http://192.168.1.18:4444/wd/hub‘,
desired_capabilities=webdriver.DesiredCapabilities.CHROME
)
time.sleep(10)
driver.quit()
가 Test.py의 추적이다 Test.py
이고 노드 응답 : 와java -jar selenium-server-standalone-3.8.0.jar -role node -hub http://192.168.1.18:4444/grid/register
그리고 허브 :
java -Dwebdriver.chrome.driver='/chromedriver' -jar selenium-server-standalone-3.8.0.jar -role hub
chromedriver를 열지 않는 브라우저가 여전히
chromedri 38842 admin 9u IPv4 0xb74a80d3f95a4bab 0t0 TCP localhost:20917 (LISTEN)
내가 가진 노드를 시작했습니다 청취 연결합니다 비록
Found handler: [email protected]652a7f
13:35:08.145 INFO - /session: Executing POST on /session (handler: BeginSession)
13:35:08.148 INFO - Capabilities are: Capabilities {browserName: chrome, goog:chromeOptions: {binary: null}, se:CONFIG_UUID: 5804e13e-503e-4490-99ef-777..., version: }
13:35:08.148 INFO - Capabilities {browserName: chrome, goog:chromeOptions: {binary: null}, se:CONFIG_UUID: 5804e13e-503e-4490-99ef-777..., version: } matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.chrome.ChromeDriverService)
Starting ChromeDriver 2.33.506106 (8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2) on port 3619
Only local connections are allowed.
나는 이것을 작동 시키려고 노력해 왔으며, 내가 누락 된 것을 발견 할 수 없다.
내가 실행하고 있습니다 : 파이썬 : 2.7.13 셀레늄 : 3.8
나는 내가 시작하는 크롬 브라우저가 필요합니다 잘못된 XD
을 뭐하는 거지주세요.
UPDATE :
난 아직도 난 그냥 셀레늄 독립을 사용하는 그리드로 전환하고 난 AWS Ubunutu 인스턴스 작업 eveything를 얻기 위해 관리해야 구매를이 알아 낸 havent 한. 그래서 지금은이 방법이 효과적입니다. 나는 왜 내가 그리드와 함께 일할 수 없는지 궁금해.
가 파싱 문제를 만족 파이썬 구현을보고 멋진겠습니까 참조하십시오. ChromeOptions을 설정하려했지만 운이 없었습니다. 나는 그것을 뒤로 굴리는 것을 고려할 것이다. 예를 들어 –
: [링크] (https://stackoverflow.com/questions/13227346/set-chrome-options-with-remote-driver) 아직도 나를 위해 작동하지 않습니다. 그리고 나는 뒤로 물러났다._selenium.common.exceptions.WebDriverException : 메시지 : u "알 수없는 오류 : 기능을 구문 분석 할 수 없습니다. goog : chromeOptions \ nfrom 알 수없는 오류 : 바이너리를 구문 분석 할 수 없습니다 \ n 알 수없는 오류입니다. –