Не удается найти элемент внутри Gmail
Я создал проект, используя Nightwatch.JS. Процесс выполняет проверки в нашей среде разработки (которая работает просто отлично) и в конечном итоге отправляет тестовое электронное письмо в учетную запись Gmail. Затем процесс перейдет в Gmail, войдите в систему и нажмите на правильный адрес электронной почты.
Я пытаюсь получить URL, который был отправлен приложению (ссылка на забытый пароль), и отправляю браузер на правильный URL.
Проблема возникает, когда я использую следующий код:
browser
.useXpath()
.getText("string(//*[text()[contains(text(),'RetrievePassword')]])",function(result)
{
console.log(result.log)
})
Я понимаю это. Ошибка:
Но когда я скажу Nightwatch нажать на ссылку, он сделает это без проблем. Есть идеи?Ошибка: не удалось найти элемент "" с помощью: xpath
URL выглядит следующим образом:
Https://test.website.com/Secure/RetrievePassword.aspx?code=123456789
1 ответ:
Я думаю, что ваш выбор XPath неверен. Если вы используете
//*[contains(text(),'RetrievePassword')]
вместо этого, он должен работать. Вот основной пример:HTML (индекс.html )
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Nightwatch</title> </head> <body> <a href="https://test.website.com/Secure/RetrievePassword.aspx?code=123456789">https://test.website.com/Secure/RetrievePassword.aspx?code=123456789</a> </body> </html>
JavaScript (gmail.js )
module.exports = { 'Gmail': function (browser) { browser .url('http://localhost:8000/index.html') // Change this if needed .waitForElementPresent('body', 1000) .useXpath() .getText("//*[contains(text(),'RetrievePassword')]", function (res) { console.log(res.value); }) .end(); } };
Команда
nightwatch -t tests/gmail.js