У нас есть приложение с угловым 1.5, в котором есть экран входа в систему, ничего не было изменено в коде приложения или в наших тестах. мы используем транспортир (с ворчанием-транспортир и т.д ..)
версии:Невозможно получить транспортир, чтобы ждать, когда существующий элемент будет доступен для клика (condition.elementToBeClickable)
"dependencies": {
"async": "^0.9.0",
"chalk": "^1.1.1",
"fs-extra": "^0.24.0",
"grunt": "~0.4.5",
"grunt-contrib-jshint": "^0.10.0",
"grunt-protractor-runner": "^4.0.0",
"grunt-protractor-webdriver": "^0.2.5",
"jshint-stylish": "^1.0.0",
"load-grunt-tasks": "~3.1.0",
"lodash": "^2.4.1",
"log4js": "^0.6.21",
"protractor": "^4.0.11",
"selenium-webdriver": "^3.0.1"
}
Все наши тесты в следующем формате:
- Войти в приложение и спать
в тесты (это). каждый из них получает функцию done(), которая вызывается по окончании теста из браузера.sleep ('1000'), а затем (сделано) обещание (синтаксис жасмина).
describe('login', function() { browser.get('/'); components.login.loginDefault(); console.log('done login'); browser.driver.manage().window().maximize(); // just in case the driver wont reach the '.add-new-type' button browser.sleep(1000); }); describe('post login', function() { it('just a test for after user loged in', function (done) { console.log('post login'); const ec = protractor.ExpectedConditions; const getStarted = element(by.css('.add-new-type')); // just a button appears on the next page console.log('getStarted ' + JSON.stringify(getStarted)); browser.wait(ec.elementToBeClickable(getStarted), 5000); console.log('post wait'); browser.sleep(5000).then(done); })});
Мы не изменили версии зависимостей или ничего в нашей среде, вдруг ничего не работает, то только тесты проходят фазы входа в систему, а затем не для не найдя элемент (я думаю) и застряли до жасмин бросает тайм-аут за исключением
Session created: count=1, browserName=chrome, chromeOptions={args=[--no-sandbox, --test-type=browser, --disable-extensions], prefs={download={default_directory=./e2e/tmp, prompt_for_download=false}}}
node path changed
done login
Started
post login
F
тест Войти пост это просто пример, мы пытались использовать другие способы, чтобы сделать водителю ждать около ждать «ExpectedConditions». Если я буду искать элемент в консоли отладчике (хром) Я достану элемент правильно ... Мы также пытались отладить и в режиме Repl печататься
element(by.css('.add-new-type')).getText()
и поведение было то же самым - ничего/нет ответа
Будет ли помощь!
Большое спасибо за ваш ответ, к сожалению, это не сработало, дело в том, что эти тесты прошли отлично до этого, мы также подозреваем, что тесты не ожидают загрузки страницы и в настоящее время не нашли способ чтобы заставить его работать – lironn
шляпа не помогла, но спасибо, я узнал что-то новое – lironn