Здесь элемент, который я хочу проверить на
<div id="console-modal" class="tab-item hide-item green-outline">
<p id="message-box"></p>
<button id="console-modal-button" class="white-button btn-md">close</button>
</div>
когда происходит какое-либо действие, я добавляю сообщение к <p>
и настраиваю отображение <div>
для блокировки.
В моем тесте с селеном я ожидаю получить сообщение, которое присутствует в обновленном элементе <p>
. Но он возвращает пустую строку.
Это код, который выполняет действие по обновлению <p>
элемента
it('should fill the login form and submit', () => {
driver.findElement(By.id('username')).sendKeys('johnd');
driver.findElement(By.id('passwd')).sendKeys('12345');
return driver.findElement(By.id('inline-signin-button')).click();
});
Это тест, который я выполняю, чтобы проверить содержание #message-box
. Вместо innerHTML
я тоже попробовал textContent
. Кроме того, когда я добавляю некоторый текст в элемент <p>
, тест может получить содержимое, но не получает обновленное содержимое после завершения действия и отображения поля.
it('should find the auth error modal and close', () => {
driver.wait(until.elementLocated(By.id('console-modal')));
driver.findElement(By.id('message-box')).isDisplayed();
return expect(driver.findElement(By.id('message-box')).getAttribute('innerHTML')).to.eventually.equal('authentication fail! check your username and password')
driver.findElement(By.id('console-modal-button')).click();
});
Я ожидаю, что возвращаемое значение будет обновленным содержимым элемента <p>
, но, похоже, оно сохраняет содержимое с того момента, когда элемент все еще скрыт. Есть ли способ, которым я мог бы получить обновленный текстовый контент, когда его элемент отображается. Или есть способ, которым я мог бы отложить выполнение до отображения элемента перед его проверкой.