현재 자바 스크립트 환경에서 Mocha & Chai와 함께 selenium-webdriver를 사용하고 있습니다. & false 값을 반환하는 방법을 찾고 있습니다. 항목이 DOM에 존재하지 않습니다. 기본적으로 사용자가 로그인했는지 여부를 확인합니다.Mocha/Chai가 포함 된 Selenium - DOM에 아이템이 존재하지 않습니다.
로그인 한 사용자는 다음과 같이 DOM에 있습니다 (로그인하지 않은 경우에는 존재하지 않습니다).
<a class="account-panel-controls__link" role="link" id="sign-out-nav" data-log-out="">Sign out</a>
나는 그렇지 않으면 나는 다른 조각 위하지 않는 경우에만 존재하는 다른 뭔가를 (클릭합니다, 그것은 존재하는 경우를 클릭 & 존재 여부를 확인하는 방법을 찾고 있어요).
<a class="account-panel-controls__link" role="link" id="registration-sign-in-nav" data-log-out="">Sign in</a>
나는 추적의 몇 가지 변화를 시도했다 그러나 그것은 아무데도 저를 얻었다 없습니다입니다. Id 'sign-out-nav'를 가진 요소가 처음에는 존재하지만 괜찮 으면 작동하지만, 그렇지 않으면 그 요소를 찾을 수 없다는 테스트가 실패합니다 (DOM에 없기 때문에 추측 할 수 있습니까?).
driver.findElement(By.id('sign-out-nav')).isDisplayed().then(function (displayed) {
if (displayed) {
driver.findElement(By.id('sign-out-nav')).click();
}
else{
driver.findElement(By.id('registration-sign-in-nav')).click();
}
});
내가 누락 된 자료가 있습니까? 이 페이지 요소를 찾기 위해 시도 할 때
감사
HTML 요소가 서버에서 보낸 요소입니까? 또는 JavaScript 라이브러리에서 생성 한 것입니까? 이는 사용할 수있는 기술이 사례에 따라 다를 수 있기 때문에 중요합니다. 전자의 경우에는 엘리먼트를 테스트 할 때 반드시 페이지에 있어야하기 때문에 엘리먼트를 기다리는 것을 건너 뛸 수 있습니다. (그리고 네,'driver.findElements'를 사용해야합니다.) 후자의 경우 요소를 기다려야합니다. – Louis