У меня есть HTML-форма (действительно простая, без хитрых частей, таких как Ajax, ...) на простой странице. Я пытаюсь прочитать значение по умолчанию для любого ввода (type = "text", опять же без трюков) и сохранить его в константе для последующего использования (assert).
HTML выглядит так:
<form method="post" ...>
<input type="text" id="xyz" name="xyz" value="123">
</form>
Cypress-тест, который не работает, выглядит следующим образом:
describe('General tests', function(){
context('General', function() {
it('can read the input and store in const', function () {
cy.visit('http://localhost/settings')
const xyz = Cypress.$('#xyz').val()
cy.log(xyz)
})
})
})
Это не работает. НО после нескольких часов игры (случайно это сработало для меня в более сложном тестовом наборе = файл). Я понял, что эта конструкция работает должным образом в случае, если предыдущий тест (= it ()) посещает тот же URL, что и последний посещенный URL. Чем это работает как чудо.
Cypress-тест, который работает, выглядит так:
describe('General tests', function(){
context('General', function() {
it('makes magic and allows the next test to work', function () {
cy.visit('http://localhost/settings')
})
it('can read the input and store in const', function () {
cy.visit('http://localhost/settings')
const xyz = Cypress.$('#xyz').val()
cy.log(xyz)
})
})
})
Я думал, что тесты должны быть независимыми, но похоже, что они не являются.
Я пробовал другие способы получения значения входной информационной переменной и самое близкое, что мне было нужно, это использовать замыкание ".then ()", но его можно использовать только для одного ввода, а не для более сложных форм.
Простое утверждение типа "cy.get ('# id_of_input'). Should ('eq', ...)" работает нормально, но не позволяет мне работать со значением по умолчанию (и переопределенным тестом) значением входы.
Итак, мои вопросы:
1) Можно ли таким образом использовать включенный jQuery для получения и сохранения значения ввода в константе? Если сейчас, что является другим способом для случаев, когда мне нужно сделать это для примерно 5 различных полей ввода в форме (для закрытия ввода сигнала будет просто хорошо)
2) Это нормально, что тесты влияют друг на друга?
Спасибо всем за помощь.