IT

알 수없는 오류 : chromedriver 업그레이드 후에도 Selenium Send Keys에 대한 '값'이 누락 된 호출 함수 결과

lottoking 2020. 8. 10. 07:29
반응형

알 수없는 오류 : 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 Chrome을 최신 버전으로 업데이트합니다 (제 경우에는 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 (). 설정 ();
webDriver = 새 ChromeDriver (chromeOptions);

그리고 그게 다입니다.

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

나에 대한 chkout 마이너스 프로젝트가 같 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 지원

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

Protractor를 실행 중이며 동일한 문제가 발생했습니다.

제 경우의 해결책은 다소 간단했습니다.

$ npm update protractor -g

$ webdriver-manager update


안정적인 최신 Chrome (예 : 67)을 사용중인 경우 다음을 권장합니다.

brew uninstall chromedriver
brew tap homebrew/cask
brew cask install chromedriver

이러한 명령 세트는 현재 크롬 드라이버를 제거하고 업데이트를 확인하며 발견 된 최신 버전 (예 : 2.40)을 설치합니다.


제 경우에는 우리가 가지고있는 특정 chromedriver 파일에 대한 포인트 셀레늄을 사용하는 팀입니다. Selenium이 업데이트 된 chromedriver를 사용하도록하려면 먼저 brew와 함께 설치 한 다음 Selenium이 찾는 위치를 가리키는 심볼릭 링크를 만들었습니다.

brew install chromedriver
ln -s /usr/local/Cellar/chromedriver/2.36/bin/chromedriver /path/where/selenium/expects/chromedriver

기회에 이것은 내가 추가 단계가 필요한 누군가에게 도움이 될 수 있습니다.

MacOS X를 사용하고 있습니다.

brew upgrade chromedriver
bundle exec chromedriver-upgrade

chromedriver-helper gem이 설치되어 있지만 숨겨져 있고 "bundle exec"접두사가 필요하거나 셸이 명령을 찾을 수 없습니다.

위의 문제가 해결되었습니다.


다른 사람들이 언급했듯이 최신 크롬 드라이버가 나를 위해 트릭을 수행했습니다. 드라이버를 수동으로 다운로드하고 appium에 새 chromedriver를 사용하도록 알리려면 다음 명령을 사용하면됩니다.

appium --chromedriver-executable /path/to/driver/chromedriver ....


Windows 환경에서 Selenium과 함께 Protractor (webdriver-manager)를 실행 중이며 다음을 수행해야했습니다.

  1. webdriver-manager update --versions.chrome="2.36" (이것은 새로운 Chromedriver를 올바른 경로로 다운로드했지만 각도기에서 활성화하지 않았습니다.)
  2. 값을에서 으로 편집 %userprofile%\AppData\Roaming\npm\node_modules\protractor\config.json하고 변경 했습니다 .chromedriver2.322.36
  3. 좋은 측정 chromedriver_2.32.exe%userprofile%\AppData\Roaming\npm\node_modules\protractor\selenium위해 내 이전 삭제 하십시오 (필요한지 확실하지 않습니다.)

또는:

다른 Chromedriver 업데이트가 필요하게되었을 때 더 이상 이런 방식으로 업데이트 할 수 없었습니다. 구성 설정은 여전히 ​​이전 경로와 파일 이름을 예상했으며 해당 설정을 변경할 위치를 알 수 없었습니다. 그래서 방금 최신 chromedriver의 이름을 "chromedriver.exe"로 변경하고 C : \ Windows \ system32 (항상 PATH에서 참조)에 고정했습니다. 조잡하지만 효과적입니다.


당신이 사용하는 경우 gulp-protractor플러그인을 확인뿐만 아니라 그것을 업데이트 할 수 있습니다.


여전히이 문제를 겪고 있는지 모르겠지만 비슷한 오류가 발생했습니다. 내 PATH에 최신 버전의 chromedriver가 있고 Google 크롬이 업데이트되었습니다. Windows 10 x64 비트에서 Python 3.6을 실행합니다. 웹 페이지의 드롭 다운 메뉴에서 값을 선택하려고했던 것입니다. 이상한 점은 드롭 다운 값을 올바르게 선택하고 페이지가 멋지게 업데이트된다는 것입니다.하지만 어쨌든 그 어리석은 오류가 발생하고 스크립트가 멈 춥니 다. 그래서 방금 예외 오류 처리기를 만들었습니다. 드롭 다운 값을 올바르게 선택했다고 말했듯이 멍청한 오류 메시지를 무시하고 싶었습니다.

# select by value
try:
    select.select_by_value('100')
except:
    pass

누군가가 도움이 되었기를 바랍니다.


이 문제는 chromedriver와 chrome 브라우저 버전이 일치하지 않기 때문입니다. 아래 링크는 크롬 브라우저 버전을 지원하는 chromedriver 버전을 지정합니다.

http://chromedriver.chromium.org/downloads

참고 URL : https://stackoverflow.com/questions/49162667/unknown-error-call-function-result-missing-value-for-selenium-send-keys-even

반응형