일부 자바 스크립트를 실행 한 후 WebElements의 가시성을 테스트하려고 시도했습니다. WebElements는 다음 XPath의에 의해 발견됩니다셀레늄 RemoteWebDriver가 웹 요소에 대한 자바 스크립트 변경을 인식하지 못하는 것 같습니다.
public static final String MOBILE_APPS_RUNNING_APP_XPATH = "//*[@id='app_slider']/ul/li[1]/a[@class='app nike-running']";
public static final String MOBILE_APPS_FUELBAND_APP_XPATH = "//*[@id='app_slider']/ul/li[1]/a[@class='app nike-fuelband']";
public static final String MOBILE_APPS_BASKETBALL_APP_XPATH = "//*[@id='app_slider']/ul/li[1]/a[@class='app nike-basketball']";
public static final String MOBILE_APPS_TRAINING_APP_XPATH = "//*[@id='app_slider']/ul/li[2]/a[@class='app nike-training']";
public static final String MOBILE_APPS_KINECT_APP_XPATH = "//*[@id='app_slider']/ul/li[2]/a[@class='app nike-kinect']";
public static final String MOBILE_APPS_MORE_APPS_XPATH = "//*[@id='app_slider']/ul/li[2]/a[@class='app nike-more']";
처음 세 요소는 페이지가로드 될 때 볼 수 있습니다. javascript 함수를 사용하면 요소가 -moz-transform: translate3d(-1084px, 0px, 0px);
스타일 속성을 통해 이동하므로 다음 세 요소가 표시됩니다. 이는 변경 사항을 선택하는 로컬 Firefox 브라우저에서 잘 작동하지만 그리드 설정에서 Firefox 브라우저에 첨부 된 RemoteWebDriver를 사용하려고하면 요소가 더 이상 표시되지 않습니다. 스크린 샷을 통해 요소가 RemoteWebDriver에 여전히 표시되어 있는지 확인했지만 업데이트 된 DOM에서 가져온 요소가 아니라 RemoteWebDriver에 의해 요소가 캐시되고 있다고 판단됩니다.
이 방법을 확인할 수 있습니까? 그렇다면 요소를 볼 수 있도록 DOM을 새로 고치는 방법은 무엇입니까?
명확히하기 : 나는 자바 스크립트가 실행 된 후에 driver.findElement(By.xpath(...))
메서드를 사용하고, 요소가 보이지 않을 때까지 기다린다.