[python-2.7] 알 수없는 오류 : chromedriver 업그레이드 후에도 Selenium Send Keys에 대한 ‘값’이 누락 된 호출 함수 결과

키를 보내는 동안 아래 오류가 발생합니다.

결과 메시지 :

System.InvalidOperationException : unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.146)
  (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.14393 x86_64)

크롬 드라이버를 2.36으로 업데이트했지만 여전히 2.33에 대한 코드 검색이 있습니까?

어떤 생각?



답변

동일한 오류가 발생했습니다. 마지막 ChromeDriver 버전을 다운로드하거나 Chrome 브라우저 버전을 업데이트하면 정상적으로 작동합니다. 🙂

https://chromedriver.storage.googleapis.com/index.html?path=2.36/


답변

Google Chrome 브라우저를 버전 65.0.3325.146 (공식 빌드) (64 비트)로 업데이트 한 후 입력 필드에 값을 보내는 동안 동일한 오류가 발생합니다. 다음은 오류 메시지입니다.

selenium.common.exceptions.WebDriverException: Message: unknown error: call function result missing 'value'

Chromedriver 2.32 및 Google Chrome 65.0 사용

이에 대해 몇 가지 조사를 하면서 문제 해결에 도움이되는 Google 크롬 v65 변경 로그에 대한 최근 커밋 을 발견했습니다 .

해결책:

  • Google 크롬을 최신 안정 버전으로 업데이트합니다 (제 경우에는 2018 년 3 월 9 일의 v65).
  • 최신 chromedriver (v2.36)를 다운로드하고 구성합니다. chromedriver를 구성하려면 (Ubuntu에서) 다음 단계를 따르세요.

    1. 다운로드 한 zip 파일을 추출합니다.
    2. 추출 된 chromedriver 파일을 / usr / local / bin 또는 일반적으로 실행 가능한 바이너리를 저장하는 위치에 복사합니다 .
    3. 환경 변수 PATH에 동일한 경로 (chromedriver 파일을 배치하는 위치)를 다음과 같이 추가합니다.

내보내기 PATH = $ PATH : / usr / local / bin

  1. 설치를 테스트하려면 터미널을 다시 시작하고 다음 명령을 입력하십시오.

chromedriver-버전

방금 설치 한 chromedriver 버전이 표시됩니다.

참고 : chromedriver가 이미 설치 및 구성된 경우 기존 드라이버 파일을 교체하고 Chromedriver 바이너리가 이미 저장된 위치를 모르는 경우 다음 명령을 사용하여 파일을 찾습니다.

 sudo find -H / -type f -iname chromedriver


답변

크롬 브라우저 버전이 64.xx에서 65.xx로 업데이트 되었기 때문입니다.

이제 테스트를 성공적으로 실행할 수있는 두 가지 옵션이 있습니다.

  1. 크롬 브라우저를 이전 버전과 현재 가지고있는 이전 크롬 드라이버로 다운 그레이드하세요.

  2. 업데이트 된 Chrome 브라우저를 사용하여 Chromedriver를 2.36 버전으로 업그레이드하세요.

    https://chromedriver.storage.googleapis.com/index.html?path=2.36을 방문 하여 새 chromedriver를 다운로드 하세요 .

옵션 2가 더 좋습니다.


답변

ChromeDriver.exe를 최신 버전으로 교체하세요. Google에서 쉽게 다운로드 할 수 있습니다.

또한 아래에 설명 된대로 webDriver 관리자를 사용하여 자동으로 수행하는 것이 더 좋습니다. 1. 프로젝트 POM에 Mvn 종속성을 추가합니다.

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>${webdrivermanager.version}</version>
    <scope>test</scope>
</dependency>
  1. 이제 브라우저 인스턴스화 클래스에서 System.setProperty (belwo 참조)를 사용하여 드라이버를 만드는 전통적인 방법사용하는 대신

    System.setProperty ( “webdriver.chrome.driver”, “src / test / resources / drivers / chromedriver.exe”);

아래 접근 방식을 사용하십시오.

WebDriverManager.chromedriver (). setup ();
webDriver = new ChromeDriver (chromeOptions);

그리고 그게 전부입니다!

참조를 위해 아래 링크를 사용하십시오-
브라우저 바이너리 관리자는 무엇입니까 Selenium에 사용하는 방법

또는 chkout git project for same-
https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-java-dependency


답변

chromedriver 업데이트 필요 : 콘솔에서 다음을 실행합니다. chromedriver-update 2.36


답변

오류는 모든 것을 말합니다.

System.InvalidOperationException : unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.146)
  (Driver info: chromedriver=2.33.506120

이 오류는 InvalidOperationException 에 대해 명확하게 불평 합니다.

주요 문제는 다음과 같이 사용중인 바이너리 간의 버전 호환성입니다 .

  • chromedriver = 2.33을 사용 중입니다.
  • chromedriver = 2.33 의 출시 노트 에는 다음 내용이 명시되어 있습니다.

Chrome v60-62 지원

  • 당신은 사용하고 있습니다 크롬 = 65.0을
  • ChromeDriver v2.37 출시 노트 에는 다음 내용이 명시되어 있습니다.

Chrome v64-66 지원

  • 귀하의 셀레늄 클라이언트 버전은 우리에게 알려져 있지 않다.

따라서 ChromeDriver 버전 ( v2.33 )과 Chrome 브라우저 버전 ( v65.0 ) 간에 분명한 불일치가 있습니다. )

해결책

  • Selenium 을 현재 레벨 버전 3.11.0으로 업그레이드 하십시오 .
  • ChromeDriverChromeDriver v2.37 수준으로 업그레이드 합니다.
  • Chrome v64.x-66.x 레벨 사이에 Chrome 버전을 유지 합니다. ( ChromeDriver v2.37 출시 노트에 따름 )
  • 청소 당신의 프로젝트 작업을 당신을 통해 IDE재 구축 에만 필요 종속성이 프로젝트를.
  • CCleaner 도구를 사용 하여 테스트 스위트 실행 전후의 모든 OS 집안일을 지우십시오 .
  • 기본 웹 브라우저 / 웹 클라이언트 버전이 너무 오래된 경우 Revo Uninstaller를 통해 제거 하고 최신 GA 및 릴리스 된 웹 브라우저 / 웹 클라이언트 버전을 설치하십시오 .
  • 당신의 실행 @Test.

답변

Mac을 사용하는 경우 :

brew upgrade selenium-server-standalone
brew upgrade chromedriver

위의 두 가지가 설치되지 않은 경우 :

brew install selenium-server-standalone
brew install chromedriver