2017-03-29 1 views
2

WebDriver.findBy(...)과 같은 성능 영향을 이해하려고합니다.Selenium은 DOM을 어디에 저장합니까?

WebElement betty = webDriver.findBy(By.id("betty")); 

셀레늄 라이브러리

가) JVM 내에서 DOM 평가해야합니까 예를 들어 나는 로컬 크롬 인스턴스를 구동하기 위해 셀레늄을 사용하는 경우?

b) 평가하려면 로컬 Chrome 드라이버 바이너리로 이동 하시겠습니까?

c) 평가할 브라우저 인스턴스로 이동 하시겠습니까?

Grid 상황에 대한 대답이 변경 되었습니까?

답변

3

나는 이것을 설명하는 멋진 technical guide을 발견했다.

은 브라우저 드라이버는 대기 지속적으로 새로운 셀레늄에 대한 명령 HTTP SERVER 사용합니다.

그것에는 다음과 같은 목적 :

  • 읽기 HTTP 요청이 클라이언트에서 오는 (클라이언트 = 컴퓨터 테스트 자동화 스크립트를 실행)

  • 는 셀레늄을 구현하기 위해 필요한 일련의 단계를 결정 명령

  • 은 브라우저에 구현 단계를 전송합니다.
  • 브라우저에서 실행 상태를 가져옵니다.
  • 가 자동화 스크립트의 각 셀레늄 명령의 클라이언트

다시 실행 상태를 보내 특정 경로와 HTTP 요청은 만들어집니다.

자동화 스크립트가 실행되면 첫 번째 http 요청은 자동화 스크립트가 실행되는 브라우저에 특정한 새 세션을 생성합니다.

세션 ID는 자동화 스크립트의 다른 모든 셀렌 명령에 해당하는 HTTP 요청에 사용됩니다.

+0

우수한 재료 !!! – DebanjanB

+0

위대한 발견, 감사합니다. 요약하자면, 캐싱없이, 우리는 이러한 종류의 작업을 위해 브라우저를 통해 드라이버를 통해 네트워크 (로컬 임에도 불구하고)를 수행합니다. – markdsievers

+0

@marksievers 예. DOM이 캐시 된 경우 암시 적 및 명시 적 대기는 모든 의미를 잃었을 것입니다. – Guy

관련 문제