WebDriverException : 알 수없는 오류 : Chrome 브라우저를 시작하는 동안 DevToolsActivePort 파일이 없습니다


152

URL로 크롬을 시작하려고하면 브라우저가 시작되고 그 후에는 아무것도하지 않습니다.

1 분 후에 아래 오류가 표시됩니다.

Unable to open browser with url: 'https://www.google.com' (Root cause: org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
  (Driver info: chromedriver=2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9),platform=Windows NT 10.0.15063 x86_64) (WARNING: The server did not provide any stacktrace information)

내 구성 :

  • 크롬 : 66
  • 크롬 브라우저 : 2.39.56

PS 는 Firefox에서 잘 작동합니다.


1
이 오류를 일으키는 코드로 질문을 업데이트 할 수 있습니까?
GPT14

vncserver가 추락하고 난 더 이상에는 X 표시가 없었다 때이 오류가 발생
xtian

답변:


71

이 오류 메시지는 ...

org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist 

... 크롬 드라이버 가 새로운 웹 브라우저 ( 예 : 크롬 브라우저 세션) 를 시작하거나 생성 할 수 없음을 의미합니다 .

코드 시험판과 모든 바이너리의 버전 정보는 무엇이 잘못되었는지에 대한 힌트를 주었을 것입니다.

그러나 기본 실행 플래그 에 대한 Add --disable-dev-shm-usage에 따르면 인수 --disable-dev-shm-usage를 추가 하면 일시적으로 문제가 해결되는 것으로 보입니다 .

Chrome 브라우저 세션 을 시작 / 스팬 하려면 다음 솔루션을 사용할 수 있습니다.

System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized"); // open Browser in maximized mode
options.addArguments("disable-infobars"); // disabling infobars
options.addArguments("--disable-extensions"); // disabling extensions
options.addArguments("--disable-gpu"); // applicable to windows os only
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("--no-sandbox"); // Bypass OS security model
WebDriver driver = new ChromeDriver(options);
driver.get("https://google.com");

disable-dev-shm-usage

당으로 base_switches.cc disable-dev-shm-usage 에서만 유효한 것으로 보인다 리눅스 OS :

#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
// The /dev/shm partition is too small in certain VM environments, causing
// Chrome to fail or crash (see http://crbug.com/715363). Use this flag to
// work-around this issue (a temporary directory will always be used to create
// anonymous shared memory files).
const char kDisableDevShmUsage[] = "disable-dev-shm-usage";
#endif

토론 에서 / dev / shm 대신 / tmp를 사용하는 옵션 추가 David는 다음과 같이 언급합니다.

/ dev / shm 및 / tmp가 어떻게 마운트되는지에 달려 있다고 생각합니다. 둘 다 tmpfs로 마운트되면 아무런 차이가 없다고 가정합니다. 어떤 이유로 / tmp가 tmpfs로 매핑되지 않은 경우 (기본적으로 systemd에서 기본적으로 tmpfs로 매핑 된 것으로 생각됨) Chrome 공유 메모리 관리는 익명의 공유 파일을 만들 때 항상 파일을 메모리에 매핑하므로이 경우에도 많은 차이가 있습니다. 플래그를 사용하여 원격 측정 테스트를 강제로 수행하고 어떻게 진행되는지 볼 수 있습니다.

기본적으로 사용하지 않는 이유는 공유 메모리 팀에 의해 밀려 난 것입니다. 기본적으로 공유 메모리에 / dev / shm을 사용해야한다는 것이 합리적이라고 생각합니다.

궁극적 으로이 모든 것이 memfd_create를 사용하도록 옮겨야하지만 Chrome 메모리 관리를 크게 리팩토링해야하기 때문에 곧 일어날 것이라고 생각하지 않습니다.


아우트로

다음은 샌드 박스 스토리에 대한 링크 입니다.


8
그러나에 대한이 특정 오류의 원인은 무엇 DevToolsActivePort file doesn't exist이며 갑자기 갑자기 나타났습니다.

3
"추가 고려 사항"항목-이 문제에 적용 할 수있는 것처럼 보입니다. 특히 문제를 일으킨 원인이 정확히 확립되지 않은 상황입니다.
피트 켈리

5
@DebanjanB의 게시물에서 삭제 된 부분에서 설치된 Chrome 버전을 지원하지 않는 Chromedriver를 사용하여 발생할 수 있습니다. 예를 들어 Chromedriver를 업그레이드하지 않고 Chrome을 업그레이드하는 경우에 발생할 수 있습니다.
expz

이것은 나를 위해 문제를 해결하는 데 사용되었습니다. 현재 시스템에는 없습니다 (Ubuntu 18 + Python 3.7)
tw0000

3
이것이 다른 사람에게 도움이되는 경우 추가하는 것만으로 disable-dev-shm-usage는 충분하지 않습니다. 또한 --no-sandbox작동하도록 추가 해야했습니다. 이 셀레늄 - 자바 저에 대한 완전한 수정했다 :chromeOptions.addArguments("--no-sandbox", "--disable-dev-shm-usage");
조지 Pantazes

52

나는 2018-06-04 월요일 에이 문제를보기 시작했습니다. 우리의 테스트는 매주 실행됩니다. 변경된 것은 구글 크롬 버전 (현재로 업데이트 된) JVM과 Selenium이 Linux 상자의 최신 버전 (Java 1.8.0_151, selenium 3.12.0, google-chrome 67.0.3396.62) 인 것으로 보입니다. xvfb-run).
특히 " --no-sandbox "및 " --disable-dev-shm-usage " 인수를 추가 하면 오류가 중지되었습니다. 이 문제를 조사하여 효과에 대한 자세한 정보와 Google 크롬을 업데이트 한 원인에 대한 기타 질문을 찾아 보겠습니다.

ChromeOptions options = new ChromeOptions();
        ...
        options.addArguments("--no-sandbox");
        options.addArguments("--disable-dev-shm-usage");

이 코드가 매일 Ubuntu Linux 상자에서 실행되고 있음을 분명히하고 싶지만 월요일에도 Windows 데스크톱의 해당 코드가 정상적으로 실행되었습니다. DevToolsActivePort 파일의 기능에 대한 정보를 찾지 못했습니다. PK
피트 켈리

1
이 옵션들도 저에게 오류를 멈췄습니다. pd : Rails 스택 사용.
Mario Pérez

여전히 그래도 [java] [1536892035.965][SEVERE]: Timed out receiving message from renderer: 60.000오류가 발생합니다
Jonathan

@Jonathan-안녕! 어떤 OS, 사용중인 구성 요소의 버전 또는 프로세스를 호출하는 방법과 같은 세부 사항을 제공 할 수 있습니까?
피트 켈리

@ 토비 : 안녕! 나는 위치가 차이를 만들었다는 것을 의미하지는 않았으며 단지 그 매개 변수를 최소한으로 사용했습니다. 업그레이드가 발생했을 때 내가 의존했던 일부 기본값이 변경된 것 같습니다. 귀하가 제공 한 시스템이나 메시지에 관한 다른 세부 사항이 도움이 될 수 있습니다.
피트 켈리

35

우리는 젠킨스 슬레이브 (리눅스 머신)에서 동일한 문제를 겪고 있었고 위의 모든 옵션을 시도했습니다.

유일한 도움은 논쟁을 설정하는 것입니다

chrome_options.add_argument('--headless')

그러나 우리가 더 조사했을 때 XVFB 화면이 속성을 시작하지 않아서이 오류를 일으키는 것으로 나타났습니다. XVFB 화면을 수정 한 후 문제가 해결되었습니다.


2
C #을 사용하여 실행할 때 문제가 해결되었습니다 (이 경우 옵션은 다음과 같습니다. options.AddArgument ( "
-headless

Xvfb가 나를 위해 문제였다
lucaswxp

23

파이썬에서도 같은 문제가있었습니다. 위의 도움이되었습니다. 다음은 파이썬에서 사용한 것입니다.

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome('/path/to/your_chrome_driver_dir/chromedriver',chrome_options=chrome_options)

업그레이드 크롬 (내가 이미 최신 chromedrive를 가지고 있음)으로 문제를 해결 했으므로 일반적인 브라우저도 업그레이드해야했습니다.
axel_ande

18

최신 정보:

문제를 해결할 수 있으며 원하는 URL로 크롬에 액세스 할 수 있습니다.

제공된 솔루션을 시도한 결과 :

위에 제공된 모든 설정을 시도했지만 문제를 해결할 수 없습니다

문제에 대한 설명 :

내 관찰에 따르면 DevToolsActivePort 파일이 존재하지 않습니다 .chrome이 scoped_dirXXXXX 폴더에서 해당 참조를 찾을 수 없을 때 발생합니다.

문제를 해결하기 위해 취한 단계

  1. 모든 크롬 프로세스와 크롬 드라이버 프로세스를 종료했습니다.
  2. 크롬을 호출하기 위해 아래 코드를 추가했습니다.

    System.setProperty("webdriver.chrome.driver","pathto\\chromedriver.exe");    
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("useAutomationExtension", false);
    WebDriver driver = new ChromeDriver(options);
    driver.get(url);
    

위의 단계를 사용하여 문제를 해결할 수있었습니다.

답변 주셔서 감사합니다.


3
useAutomationExtension에 어떤 영향이 있는지 알고 있습니까? 자동화 (스크린 샷 / 제어 등) 확장 기능을 비활성화합니까? DevTools의 출현으로이 변경 사항이 아무런 영향을 미치지 않습니까? codereview.chromium.org/2785413002
Toby

10

나는 최근에 같은 문제에 직면했으며 시행 착오 후에 나에게도 효과가있었습니다.

정상에 있어야합니다 :

options.addArguments("--no-sandbox"); //has to be the very first option

BaseSeleniumTests.java

public abstract class BaseSeleniumTests {

    private static final String CHROMEDRIVER_EXE = "chromedriver.exe";
    private static final String IEDRIVER_EXE = "IEDriverServer.exe";
    private static final String FFDRIVER_EXE = "geckodriver.exe";
    protected WebDriver driver;

    @Before
    public void setUp() {
        loadChromeDriver();
    }

    @After
    public void tearDown() {
        if (driver != null) {
            driver.close();
            driver.quit();
        }
    }

    private void loadChromeDriver() {
        ClassLoader classLoader = getClass().getClassLoader();
        String filePath = classLoader.getResource(CHROMEDRIVER_EXE).getFile();
        DesiredCapabilities capabilities = DesiredCapabilities.chrome();
        ChromeDriverService service = new ChromeDriverService.Builder()
                .usingDriverExecutable(new File(filePath))
                .build();
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--no-sandbox"); // Bypass OS security model, MUST BE THE VERY FIRST OPTION
        options.addArguments("--headless");
        options.setExperimentalOption("useAutomationExtension", false);
        options.addArguments("start-maximized"); // open Browser in maximized mode
        options.addArguments("disable-infobars"); // disabling infobars
        options.addArguments("--disable-extensions"); // disabling extensions
        options.addArguments("--disable-gpu"); // applicable to windows os only
        options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
        options.merge(capabilities);
        this.driver = new ChromeDriver(service, options);
    }

}

GoogleSearchPageTraditionalSeleniumTests.java

@RunWith(SpringRunner.class)
@SpringBootTest
public class GoogleSearchPageTraditionalSeleniumTests extends BaseSeleniumTests {

    @Test
    public void getSearchPage() {
        this.driver.get("https://www.google.com");
        WebElement element = this.driver.findElement(By.name("q"));
        assertNotNull(element);
    }

}

pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <scope>test</scope>
        </dependency>
</dependencies>

재미있는! .side 파일을 어떻게 생성합니까? 품질 관리 담당자가 직접 수행 한 작업입니까?
Nital

Selenium IDE를 사용하여 테스트를 기록합니다. 결과는 .side 파일입니다. IDE를 사용하여 정상적으로 실행되지만 셀레늄 사이드 러너를 사용하여 실행하려고하지만 크롬 드라이버와 관련된 모든 종류의 문제가 발생합니다.
pabrams

첫 번째 옵션이되어야합니다.이 하하를 찾는 데 며칠을 보내십시오
cuniculus

감사! "--sandbox 없음"을 추가하면 문제가 해결됩니다.
matabares

7

제 경우에는 다음 환경에서 :

  • 윈도우 10
  • 파이썬 3.7.5
  • 경로에있는 Chrome 버전 80 및 해당 ChromeDriver C:\Windows
  • 셀렌 3.141.0

나는 인수를 추가 할 필요 --no-sandbox--remote-debugging-port=9222받는 ChromeOptions객체 관리자로 파워 쉘 / cmd를 점심으로 관리자 사용자로 코드를 실행합니다.

관련 코드는 다음과 같습니다.

options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('--disable-infobars')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--no-sandbox')
options.add_argument('--remote-debugging-port=9222')
driver = webdriver.Chrome(options=options)

1
우분투 18.04, py3.7, chrome (driver) 80 도커에서도 동일합니다.
patroqueeet

이것은 추가 문제없이 나를 위해 일했습니다. 나는 오늘이 문제에 직면하기 시작했지만 귀하의 답변으로 인해 신속하게 해결되었습니다! 내 환경은 본질적으로 당신과 동일합니다.
라이언 해리스

5

chromedriver를 별도로 다운로드 한 다음 사용 sudo apt install chromium-browser하는 동일한 버전이지만 Python Selenium과 함께 Ubuntu 20 에서이 문제 가 발생했습니다.

내 해결책은 repo 패키지와 함께 제공된 크롬 드라이버를 사용하는 것입니다.

/snap/bin/chromium.chromedriver

driver = webdriver.Chrome(chrome_options=options, executable_path='/snap/bin/chromium.chromedriver')

4

이 다른 답변에 명시된 바와 같이 :

이 오류 메시지는 ChromeDriver가 Chrome 브라우저 세션과 같은 새로운 WebBrowser를 시작 / 발산 할 수 없음을 나타냅니다.

가능한 원인 중 나는 경우에 당신은 Xvfb가를 통해 헤드리스 크롬을 실행하고 있다는 사실을 언급하고 싶습니다, 당신은 할 수 필요 변수 : 내 경우에는, 내가 (권장) 자리에 있던 및 옵션, 모든했다 잘 작동하지만 최신 (작성 당시) Ubuntu 18.04를 실행하는 새 설치 에서이 오류가 발생하기 시작했으며 가능한 유일한 수정은 (이전에 Xvfb로 시작) 을 실행하는 것 입니다.exportDISPLAY--disable-dev-shm-usage--no-sandboxexport DISPLAY=":20"Xvfb :20&


세상에 도커 컨테이너를 약간 변경하고 실수로 xvfb를 생략했습니다. 당신이 여기에 남지 않았다면 나는 이것을 결코 찾지 못할 것입니다 :-).
라이언 실링

3

jenkins 서버와 통합하는 동안이 문제에 직면 했으며 jenkin 작업에 루트 사용자를 사용 했으며 사용자를 다른 사용자로 변경하면 문제가 해결되었습니다 . 이 오류가 루트 사용자에게 발생하는 이유를 잘 모르겠습니다.

  • 구글 크롬 버전 71.0
  • ChromeDriver 버전 2.45
  • CentOS7 버전 1.153

루트가 아닌 사용자가 나를 위해 일했습니다. 크롬에 올바른 크롬 드라이버 버전이 있습니다.
TicJit

2

필자의 경우 기본 사용자 프로필을 사용하려고 시도했을 때 발생했습니다.

...
options.addArguments("user-data-dir=D:\\MyHomeDirectory\\Google\\Chrome\\User Data");
...

이로 인해 Chrome은 백그라운드에서 이미 실행중인 프로세스를 재사용하도록 촉발했습니다. 이러한 방식으로 chromedriver.exe에 의해 시작된 프로세스는 단순히 종료되었습니다.

해결 : 백그라운드에서 실행중인 모든 chrome.exe 프로세스를 종료하십시오.


비슷한 문제가 있었지만 Linux에서는 스크립트가 충돌 한 후 크롬 프로세스가 올바르게 종료되지 않아 잘못 재사용되었습니다. 그들을 죽이는 문제를 해결
jeremycg

2

conf.js의 기능 업데이트

exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['todo-spec.js'],
  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: ['--disable-gpu', '--no-sandbox', '--disable-extensions', '--disable-dev-shm-usage']
    }
  },

};

2

제 경우에는 크롬 브라우저를 사용하여 Windows OS에서 실행 가능한 jar 파일을 만들려고했지만 CentO가있는 유닉스 상자에서 헤드리스 모드에서 동일하게 실행하려고합니다. 그리고 바이너리를 다운로드하여 패키지로 패키지 한 드라이버를 가리키고있었습니다. 나 에게이 문제는 아래 추가 사항에 관계없이 계속 발생합니다.

ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
options.addArguments("--no-sandbox");
System.setProperty("webdriver.chrome.args", "--disable-logging");
System.setProperty("webdriver.chrome.silentOutput", "true");
options.setBinary("/pointing/downloaded/driver/path/in/automationsuite");
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("disable-infobars"); // disabling infobars
options.addArguments("--disable-extensions"); // disabling extensions
options.addArguments("--disable-gpu"); // applicable to windows os only
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("window-size=1024,768"); // Bypass OS security model
options.addArguments("--log-level=3"); // set log level
options.addArguments("--silent");//
options.setCapability("chrome.verbose", false); //disable logging
driver = new ChromeDriver(options);

내가 시도하고 일한 해결책은 호스트 VM / Unix 상자에 크롬 및 해당 도구를 다운로드하고 자동화 제품군 및 빙고에서 바이너리를 설치하고 지정하는 것입니다! 효과가있다 :)

다운로드 명령 :

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

설치 명령 :

sudo yum install -y ./google-chrome-stable_current_*.rpm

Google 크롬의 이진 경로 아래로 스위트 업데이트 :

options.setBinary("/opt/google/chrome/google-chrome");

그리고 .. 작동합니다!


이 코드를 어디에 추가합니까? 내
.side

1

나는 같은 문제가 있었지만 내 경우에는 크롬이 이전에 사용자 임시 폴더에 설치 된 후 프로그램 파일로 다시 설치되었습니다. 그래서 여기에 제공된 해결책 중 어느 것도 나를 도와주지 않았습니다. 그러나 chrome.exe에 경로를 제공하면 모두 작동합니다.

chromeOptions.setBinary("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");

나는 이것이 누군가를 도울 수 있기를 희망한다 =)


아래 @shiuu 수정의 정반대 인 것 같습니다
Toby

1

내 해결책이 없었습니다. 그러나 여기에 해결 방법이 있습니다.

maxcounter=5
for counter in range(maxcounter):
    try:           
        driver = webdriver.Chrome(chrome_options=options,
                          service_log_path=logfile,
                          service_args=["--verbose", "--log-path=%s" % logfile])
        break
    except WebDriverException as e:
        print("RETRYING INITIALIZATION OF WEBDRIVER! Error: %s" % str(e))
        time.sleep(10)
        if counter==maxcounter-1:
            raise WebDriverException("Maximum number of selenium-firefox-webdriver-retries exceeded.")

1

Chrome에 잘못된 인수를 전달하면이 오류가 발생할 수 있습니다. 예를 들어 "headless"C # ChromeDriver에 인수로 전달하면 문제가 발생합니다. 실수를하고 잘못된 구문을 사용 "--headless"하면 DevToolsActivePort file doesn't exist오류가 발생합니다.


1

동일한 문제가 발생하여 UBUNTU, PYTHON 및 OPERA 브라우저를 사용하고 있습니다. 필자의 경우 오래된 버전의 operadriver가 있었기 때문에 문제가 발생했습니다.

해결책 : 1. 최신 오페라 브라우저 버전 (오페라 베타 또는 오페라 개발자를 사용하지 마십시오)을 설치하십시오. 공식 오페라 사이트로 이동하여 최신 opera_stable 버전을 다운로드하십시오.

  1. 최신 Opera 드라이버 설치

wget https://github.com/operasoftware/operachromiumdriver/releases/download/v.80.0.3987.100/operadriver_linux64.zip

   unzip operadriver_linux64.zip
   sudo mv operadriver /usr/bin/operadriver
   sudo chown root:root /usr/bin/operadriver
   sudo chmod +x /usr/bin/operadriver

제 경우에는 최신 버전이 80.0.3987이었습니다.

  1. 또한 chromedriver를 설치하기 위해 chromedriver도 설치했지만 (테스트하기 전에 수행 했으므로 이것이 필요하다는 것을 알지 못합니다) chromedriver를 설치하려면 이전 단계의 단계를 따르십시오.

  2. 즐기고 감사합니다!

샘플 셀레늄 코드

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Opera()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.quit()

0

이 오류의 원인은 여러 가지가있는 것 같습니다. 이 경우 코드에 다음 두 줄이 있기 때문에 오류가 발생했습니다.

System.setProperty("webdriver.chrome.driver", chromeDriverPath);
chromeOptions.setBinary(chromeDriverPath);

두 번째 줄을 제거하면 해결됩니다.


위의 @ sergiy-konoplyaniy 수정과 정확히 반대되는 것 같습니다 : '(
Toby

우리는 setBinary에서 크롬 드라이버를 설정하려고 시도했지만 실수로 보입니다. @ sergiy-konoplyaniy의 수정 프로그램은 setBinary를 통해 chrome.exe를 설정합니다.
shiuu

이 코드는 어디에 있습니까? 내가 가진 것은 .side 파일이며 C # 코드가 없습니다.
pabrams

0

Docker 컨테이너에서 Behat / Mink 및 Selenium을 통해 Chrome을 실행하는 것과 동일한 문제가 발생했습니다. 약간의 어려움을 겪고 나서 behat.yml위에서 언급 한 스위치를 제공하는 다음에 도착했습니다 . 그것들을 모두 성공적으로 실행하려면 그들 모두가 필요했습니다.

default:
    extensions:
        Behat\MinkExtension:
            base_url: https://my.app/
            default_session: selenium2
            selenium2:
                browser: chrome
                capabilities:
                    extra_capabilities:
                        chromeOptions:
                            args:
                                - "headless"
                                - "no-sandbox"
                                - "disable-dev-shm-usage"

0

내 경우에는 기본 디렉토리를 가비지로 채우므로 기본 TMPDIR을 사용할 수없는 Kubernetes 환경에 있습니다.

그래서 이것을 사용하여 다른 tmpdir을 사용했습니다.

driver = new ChromeDriver(new ChromeDriverService.Builder()
                    .withEnvironment(ImmutableMap.of("TMPDIR", customTmpPath))
                    .build(), options);

그러나 이제 모든 것을 최신으로 업그레이드 했으므로 더 이상 작동하지 않는 것 같습니다. 이 작업을 수행하는 새로운 방법을 찾아야합니다.


0

chromedriver가 사용중인 디버깅 포트 크롬을 파악하지 못하는 경우에 발생합니다.

가능한 원인 중 하나는 HKEY_CURRENT_USER \ Software \ Policies \ Google \ Chrome \ UserDataDir 의 공개 결함입니다.

그러나 마지막 경우에는 다른 미확인 원인이었습니다.

다행히도 수동으로 포트 번호를 설정하면 다음과 같이 작동합니다.

final String[] args = { "--remote-debugging-port=9222" };
options.addArguments(args);
WebDriver driver = new ChromeDriver(options);

2
일정한 포트입니까? 아니면 어디서 찾을 수 있습니까?
마이크 시얀

0

제 경우에는 포트 번호가 잘못되었습니다. Selenium 서버를 시작할 때 포트 번호가 스크립트와 같은지 확인하십시오.


-2

yum -y install gtk3-devel gtk3-devel-docs" 를 설치하여이 문제를 해결 합니다. 정상적으로 작동합니다.

내 작업 환경은 다음과 같습니다

Selenium Version 3.12.0
ChromeDriver Version v2.40
Chrome 68 level

전에:
여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

후:
여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오


9
검토에서 : 이미지에 텍스트를 게시하지 마십시오. 답을 수정하고 해당 이미지를 텍스트로 바꿉니다. 감사합니다
sɐunıɔ ןɐ qɐp

1
이것이 누구에게나 문제를 해결합니까? 이것은 나를 위해 문제를 해결하지 못했습니다
Bendram

-2

이것이이 유형의 오류에 대해 가장 활발한 메시지이므로이 문제를 해결하기 위해 몇 시간을 보낸 후에 솔루션을 언급하고 싶었습니다.

Ubuntu 18.04에서 Chrome 70 및 Chromedriver 2.44 및 Python3을 사용하면 위에 나열된 모든 옵션을 비활성화하더라도 동일한 DevToolsActivePort 오류가 계속 발생합니다. ps뿐만 아니라 chromedriver 로그 파일은 chrome_options.binary_location에서 설정 한 chromedriver가 실행 중이지만 항상 DevToolsActivePort 오류를 발생 시켰습니다. chrome_options.binary_location = '....'을 제거하고 웹 드라이버 생성에 추가하면 정상적으로 작동합니다. webdriver.Chrome ( '/ path to ... / chromedriver', chrome_options = chrome_options)

문제를 이해하고 해결하는 의견을 보내 주셔서 감사합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.