У меня определены следующие два сценария:
@high @basic
Scenario Outline: dropdown boxes exist
When I am on the Enernoc application
Then application is running
And <dropdown box> is present
Examples:
|dropdown box|
|templateSelection|
|templateDeliveryPathSelection|
|templateLocaleSelection|
@high
Scenario Outline: dropdown boxes appear and work as expected.
Given I am on the Enernoc application
Then application is running
When click <box>
Then <option> present in <box>
Examples:
|box| option|
|templateSelection| Apparent Energy |
|templateDeliveryPathSelection| EMAIL |
Код:
Given(/^I am on the Enernoc application$/, function (callback) {
browser.ignoreSynchronization = true; // To be added if the application is non-angular
browser.driver.manage().window().maximize(); // To maximize the window
browser.get("http://d3qdeak1vbuqh4.cloudfront.net/template_definition").then(function () {
callback(); // To tell the cucumber that we are done with this step
});
});
Then(/^application is running$/, function (callback) {
browser.manage().timeouts().pageLoadTimeout(3000);
callback();
});
Then(/^(.*) is present$/, function (dropdown,callback) {
expect(element(by.id(dropdown)).isPresent());
callback();
});
When(/^click (.*)$/, function (dropdown,callback) {
EnernocHomePage.clickDropdown(dropdown,callback);
});
Then(/^(.*) present in (.*)$/, function (value,dropdown,callback) {
EnernocHomePage.checkDropdown(value,dropdown);
callback();
});
В другом файле у меня есть этот код:
clickDropdown: function(dropdown,callback) {
element(by.id(dropdown)).click().then(function () {
callback();
});
},
checkDropdown: function (value,dropdown) {
expect(element(by.id(dropdown)).$('option:checked').getText()).eventually.equal(value);
},
Я получаю сообщение об ошибке, сообщающее об этом:
stale element reference: element is not attached to the page document
(Session info: chrome=68.0.3440.106)
(Driver info: chromedriver=2.41.578706 (5f725d1b4f0a4acbf5259df887244095596231db),platform=Mac OS X 10.13.6 x86_64)
[12:15:17] E/launcher - StaleElementReferenceError: stale element reference: element is not attached to the page document
(Session info: chrome=68.0.3440.106)
(Driver info: chromedriver=2.41.578706 (5f725d1b4f0a4acbf5259df887244095596231db),platform=Mac OS X 10.13.6 x86_64)
Как я могу это исправить? Кажется, что по какой-то причине он не находит элемент при попытке получить к нему доступ. Есть идеи?
Ошибка, похоже, в разделе checkDropdown согласно подробному выводу.