События после clickMouseButton
В одном из моих тестов мышь была перемещена в определенное место, а затем clickMouseButton()
называется. Это действие - изменить отображаемые данные (разбивку на страницы.) Однако, после нажатия кнопки, когда я пытаюсь получить текст в столбце таблицы, чтобы убедиться, что данные изменились, данные возвращаются к первоначальному отображению. и мой тест не пройден. Мой тестовый код:
return Remote
.moveMouseTo(JE.Buttons.Scrolling(), 5, 100)
.clickMouseButton()
.end(Infinity)
.sleep(500)
.findByXpath('//*[@id="vwNJEAll_grid_header_tbody"]/tr[2]/td[2]/div')
.getVisibleText()
.then(function (result) {
expect(result).not.to.equal(firstSeenJENumber);
});
Код позади JE.Buttons.Scrolling()
является:
return Remote
.setFindTimeout(5000)
.findByXpath('//*[@id="vwNJEAll_grid_table_container"]/div[2]/div');
Мне действительно кажется, что локатор в Leadfoot привязан к тому, что находится на странице при первой загрузке. Так ли это, и как мне добиться того, что мне нужно? У меня нет другого объяснения этому, но, надеюсь, у вас есть.
1 ответ
moveMouseTo
не принимает обещание в качестве первого аргумента, так что moveMouseTo
Вызов неправильный и не будет делать то, что вы хотите. JE.Buttons.Scrolling()
Вызов в вашем примере кода также происходит немедленно (во время построения цепочки команд), он не происходит только один раз moveMouseTo
на самом деле выполняется.
Чтобы получить и использовать элемент с вашей функцией абстракции, передайте функцию then
а затем используйте элемент:
return Remote
.then(JE.Buttons.Scrolling)
.then(function (element) {
return Remote.moveMouseTo(element, 5, 100);
})
// …remainder of test…