Така че се опитвам да използвам Protractor, за да тествам неъглово приложение (използвайки Mocha). Имам този код:
var page = createAccountPage.create('/noname');
page.typeFirstNameInput('jane');
page.typeLastNameInput('doe');
page.typePasswordInput('password');
page.clickAgreedToTermsInput();
page.clickCreateAccountButton();
page.redirectToCreateProfilePage();
Обърнете внимание, че всички type*()
са почти еднакви:
createAccountPage.typeFirstNameInput = function(value) {
$(selector).sendKeys(value);
};
Това основно отваря браузърите и трябва да попълни формуляра, попълва и след това щраква върху бутон, който пренасочва страницата. Проблемът, с който се сблъсквам, е, че той попълва всички въведени форми с изключение на първото име. Ако направя това:
var page = createAccountPage.create('/noname');
page.typeFirstNameInput('jane');
page.typeFirstNameInput('jane');
page.typeLastNameInput('doe');
page.typePasswordInput('password');
page.clickAgreedToTermsInput();
page.clickCreateAccountButton();
page.redirectToCreateProfilePage();
След това попълва първото име, но получавам грешката:
StaleElementReferenceError: Element is no longer attached to the DOM
Единствената причина, поради която виждам това да се случва, е, че формулярът сега е попълнен правилно и щракването върху бутона пренасочва страниците и по някаква причина първият page.typeFirstNameInput('jane');
се изпълнява последен (което също би обяснило кога, когато го имам там веднъж, собственото име се попълва).
Има ли някаква причина първото действие page.typeFirstNameInput('jane');
да бъде изпълнено последно?
typeFirstNameInput
тялото на функцията по-горе? Това може да е полезно stackoverflow.com/questions/17174515/ - person codef0rmer   schedule 26.04.2015