7
  • OS : 윈도우 10
  • 브라우저 : IE11
  • 셀레늄 (파이썬) 패키지 : 3.0.1
  • IEWebDriverServer.exe : 우리는 윈도우 10과 우리의 테스트 기간 동안 우리의 자동화 노드를 마이그레이션 할 준비가 점점 3.1.0

, 우리는 우리의 스크립트 FF, IE와 크롬, 그들에 Win7에에 잘 작동하지만, 발견 IE에서만 Windows 10에서 작동하지 않습니다 (FF 및 Chrome에서 정상적으로 작동 함).셀레늄 IE11은 윈도우 10에서 요소를 찾을 수 없습니다와 3.0.1 (IE11과 윈도우 7에서 잘 작동)

agianst IE를 실행하면 브라우저가 인스턴스를 생성하고 webdriver가 브라우저를 볼 수 있습니다. 이전 페이지로 돌아 오는 driver.back()과 같은 간단한 명령을 시도했습니다. 그러나 find_element ... 호출이 작동하지 않습니다. id, name, css, xpath 등이 될 수 있습니다. 스크립트는 주어진 id/name/css/xpath (웹 요소를 찾기 위해 사용하는 모든 방법)에 대해 요소가 발견되지 않았다는 사실을 알리는 데 실패합니다.

나는이 문제를 일으키고 업데이트를 되돌리 겠다는 제안을 한 보안 업데이트와 관련된 게시물을 보았습니다. 1 년 전 이었지만 후속 업데이트로이 문제가 해결 된 것으로 보입니다.

또한 모든 영역, 레지스트리 값 등에서 보호 모드가 동일한 지 확인하는 방법에 대한 게시물을 읽었습니다. 이러한 제안은 모두 효과가 없었습니다.

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Ie() 
driver.implicitly_wait(30) 
driver.maximize_window() 

# navigate to the application home page 
driver.get("http://www.google.com") 

# get the search textbox 
search_field = driver.find_element_by_id("lst-ib") 

이 스크립트를 실행에서 오류는 다음과 같습니다 :

selenium.common.exceptions.NoSuchElementException: Message: Unable to find element with id == lst-ib 
다음

단지 내가 (크롬이나 파이어 폭스 통과에서 실행하도록 수정하는 경우) IE11에서 작동하지 않는 사용하고있는 샘플 스크립트입니다
+0

당신은 당신이 (당신이하는 경우가별로 당신이 할 수있는 즉 10에서 뜨거운 보안 기능을 가지고있는 것처럼 그것은 소리 않음) – DaniDev

+0

그것은 같은 간단한의 을 실행에 도착하지 못할 코드를 추가 할 수 있습니다.FF (Chrome) 및 Chrome (Windows)에서는 작동하지만 IE11에서는 제대로 작동하지 않습니다. find_element_by_css_selector, by_id, by_name 등과 같은 다양한 대안을 시도했습니다. 그러나 모든 경우에 요소를 찾을 수 없다는 내용이 있습니다. 아무도이 이슈를 게시하지 않은 것 같아서 내가 모르는 뭔가가 명백하게 드러나는 것처럼 느껴집니다. – derekmw

+0

추가하기 만하면 기본 셀레늄 스크립트 (이 경우에는 파이썬 예제)를 작성하기 위해 나열된 샘플 예제를 사용하여 매우 간단한 테스트를 작성했습니다. 나는 같은 행동을 본다. IE는 URL을로드하고 탐색하지만 요소를 찾을 수 없습니다. 스크립트에서 "ID가있는 요소를 찾을 수 없습니다 ..."라는 오류 메시지가 나타납니다. 여기 또는 제안에 도움을 주시면 감사하겠습니다. – derekmw

답변

0

지금 당장 귀찮게 여기지 않으 셨겠지만 몇 일 전에 같은 문제가 기록되었으며 여전히 고생했습니다 (click here). 나는 보안 문제를 더욱 좁혔다. 당신이 로깅을 증가하는 경우에는 아래 라인이 표시됩니다

W 2017-03-06 17:27:41:539 Script.cpp(494) -2147024891 [Access is denied.]: Unable to execute code, call to IHTMLWindow2::execScript failed 
W 2017-03-06 17:27:41:540 Script.cpp(180) Cannot create anonymous function 
W 2017-03-06 17:27:41:540 ElementFinder.cpp(98) A JavaScript error was encountered executing the findElement atom. 

를 내가 온/오프하지만 아무 소용이 모든 보안 옵션을 시도했습니다. 내가 로컬에서 문제가 생기고 내 CI 환경을 설정하지 않아서 내가 회전 할 때 손가락이 엇갈리게되기를 바랬다.

P. 나는 당신이 부서진 VM을 가지고 있다고 생각하지 않는다 !! 내가 (안 윈도우 나 IE에 불구하고)는 '예외 : NoSuchElementException'우연히 발견 할 때마다

+0

'깨진 VM'이라는 용어는 유감스럽게 생각합니다. 내가 VM이 반드시 깨진 것은 아니지만 일부 업데이 트 (운영 체제 또는 브라우저에 대한 패치/보안 업데이 트 여부)이 원인이 일어난 것으로 의심된다. 그러나, 나는 이것을 취소 할 방법이없는 것 같아서, 나는 그것을 말했다. 그것이 작동하도록하는 방법을 찾으면, 나는 모든 귀이고 감사 할 것입니다. 나는이 VM을 제 위치에 두었고 둘을 비교하여 비교할 수 있는지 알아보기로했다. – derekmw

0

,이 항상 근무하고있다 :

: 요소를 찾기 위해 다음

from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By 

:

이 수입 추가

search_field = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, """//*[@id="lst-ib"]"""))) 
search_field.send_keys('Example') 

파이썬으로 웹 스크래핑에 대한 공헌. 나는 이것이 도움이되기를 바란다. 그러나 현재로서는 이것을 확인할 창이나 IE가 없다. 자기 :

+0

제안 해 주셔서 감사 합니다만, 아니요, IE에서는 작동하지 않습니다. FF와 CH에서는 간단한 find 요소 호출이 잘 작동한다는 점에 유의해야합니다. Windows 10에서는 IE11이 아닙니다. – derekmw