У меня странная ошибка, которую я пытаюсь воссоздать с тестом. Я знаю, что вызывает ошибку и как ее исправить, но я не могу понять, как правильно ее протестировать.Как проверить, что страница перезагрузилась, когда я нажимаю ссылку на текущую страницу?
Сценарий:
- Мой браузер на http://example.com/foo
- я нажимаю ссылку на эту страницу с HREF = "/ Foo" (та же страница)
- Браузер должен перезагрузить ту же страницу
Я пробовал:
class SamePageHyperlinkSpec extends StatelessUserWebGebSpec {
def 'users is on Foo page and clicks foo link'() {
when:
to FooPage
then:
// navigation.foo is a property in a super class that references
// a particular navigation item
navigation.foo.click()
and:
at FooPage
}
}
... но это дало ложный результат, потому что, хотя браузер не перезагружал страницу, он уже был на этой странице. Итак, я решил, взять бы взглянуть на PageChangeListener, который должен позволить мне годен/не годен на изменение страницы:
class SamePageHyperlinkSpec extends StatelessUserWebGebSpec {
def 'users is on Foo page and clicks foo link'() {
given:
def listener = new MyPageChangeListener()
browser.registerPageChangeListener(listener)
when:
to FooPage
and:
listener.changeCount = 0
then:
// navigation.foo is a property in a super class that references
// a particular navigation item
navigation.foo.click()
and:
at FooPage
and:
listener.changeCount == 1
}
}
class MyPageChangeListener implements PageChangeListener {
int changeCount = 0
void pageWillChange(Browser browser, Page oldPage, Page newPage) {
println "browser '$browser' changing page from '$oldPage' to '$newPage'"
changeCount++
}
}
... это не удастся (как и положено), когда нет перезагрузки страницы, однако он также терпит неудачу, когда есть перезагрузка страницы, потому что страница, на которой она заканчивается, такая же, ergo no page изменение произошло.
Я также попытался дублировать класс страницы (и это «при закрытии»), однако это всегда проходило независимо от того, была ли перезагрузка страницы или нет.
Итак, как я могу проверить, что страница перезагрузилась, когда я нажимаю ссылку на текущую страницу?
Есть ли что-то, что меняется на странице при перезагрузке? например поля или элементы, видимые и т. д.? –
@PaulHarris Nope, nada – BenLanc
Я пытаюсь думать о чем-то другом, кроме этого, но это сработает ... в основном вы могли бы использовать свой драйвер для JavascriptExecutor, а затем выполнить Javascript, который добавит элемент на страницу.Затем вы можете перезагрузить, и вы узнаете, что это сделано, потому что элемент, который вы только что добавили, исчезнет. Должен быть лучший способ, но мой ум сейчас странно идиотский. –