1

헤드리스 크롬에서 로컬로 실행되도록 내 테스트 (Nightwatch.js로 작성)를 얻으려고합니다. 그러나 헤드리스 모드에서 요소를 찾을 수 없으므로 테스트가 실패합니다 (헤드리스 모드없이 작동 함).야간 시계 테스트에서 헤드리스 크롬 모드의 요소를 찾지 못했습니다.

실패한 스크린 샷을 확인한 경우에만 흰색 화면 만 표시됩니다. "body"요소에 대한 검사가 실제로 검사되면 실제로 통과합니다. 그래서 페이지가로드 된 것 같지만, 아마 헤드리스 크롬이 어떤 이유로 자바 스크립트를로드 할 수 없습니까? 나중에 div 및 버튼 등이 몇 초 동안 표시 될 때까지 기다리지 만 찾지는 못합니다.

잘못된 정보가 있습니까? nightwatch 설정 파일의 desiredCapabilities에 --headless 및 --disable-gpu 플래그를 추가했습니다.

+0

누군가에게 몇 시간을 절약 할 희망 : 항상 올바른 언어이 발견 해결 방법은 당신은 이것을위한 해결책을 찾았습니까? – SuperUberDuper

+0

Mac에서 같은 문제가 발생했습니다. 나는 너에게 듣기를 기뻐할 것이다! – Jeremad

답변

0

나는 당신이 시도하십시오 리눅스에있는 경우 Nightwatch.js

이진 경로를 선언해야한다고 생각, 나를 위해 완벽하게 작동합니다 : 당신이 맥에있는 경우, 바이너리를 대체

  "desiredCapabilities": { 
      "browserName": "chrome", 
      "javascriptEnabled": true, 
      "acceptSslCerts": true, 
      "chromeOptions": { 
       "args": [ 
        "headless", "disable-gpu" 
       ], 
       "binary": "/usr/bin/google-chrome" 
       } 
     } 

경로, 예 : /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome

0

그래서 어제 같은 답이 나왔다. 구글 홈페이지에서 거짓 테스트를하려고했다. 오늘 아침 신선한 두뇌로 나는 그것에 착수하려고 노력했다. 야간 시계가 요소를 찾지 못하기 바로 전에 스크린 샷을 찍는 멋진 아이디어가있었습니다.

"정상적인"크롬은 홈 페이지가 영어로되어 있고 "헤드리스"크롬은 어떤 이유로 프랑스어로 홈페이지를 가지고있는 것으로 나타났습니다.

나는 이것을 발견했습니다 : https://bugs.chromium.org/p/chromedriver/issues/detail?id=1925 이유를 설명 할 수 있습니다.

"chromeOptions" : { 
    "args" : ["--lang=fr", "--headless"] 
} 

나는 여전히 (이상하게) 영어로 설정 힘든 시간을 가지고 있지만 나는 이것이 미래