Проблема заключается в следующем:
- На странице обзора вы переходите на другую страницу, затем используете «браузер назад», т. Е. Страница обзора загружается снова (хотя, возможно, из кеша браузера).
- Но, тем не менее, вы обращаетесь к навигаторам с момента первой загрузки страницы обзора, перебирая их с помощью
each
. Это означает, что элементы уже устарели.
Вместо этого вы должны получить всю информацию, необходимую для перебора списка при первом открытии страницы обзора. Это также сэкономит время и сделает «браузер обратно» совершенно ненужным. Это работает для меня:
package de.scrum_master.stackoverflow.q59958656
import geb.spock.GebReportingSpec
class GitHubTrendingIT extends GebReportingSpec {
def test() {
given:
browser.baseUrl = "https://github.com"
def providerListPage = to ProviderListPage
report "provider list page"
providerListPage
.list()
.collect {
def pageInfo = it.attr("href").split('/').reverse()
[pageInfo[1], pageInfo[0]]
}
.each {
println "trending page = $it"
to ProviderPage, it[0], it[1]
report "trending page"
}
expect:
true
}
}
Я обернул код в Groovy тестовый класс. Просто удалите части, которые вам не нужны, если вы хотите выполнить код из скрипта (я никогда этого не делаю).
Кстати, во время написания теста выдается следующее:
trending page = [wuhan2020, WebApp]
trending page = [oldboyxx, jira_clone]
trending page = [wuhan2020, wuhan2020]
trending page = [microsoft, ApplicationInspector]
trending page = [wuhan2020, api-server]
trending page = [lispczz, pneumonia]
trending page = [sundowndev, hacker-roadmap]
trending page = [binhnguyennus, awesome-scalability]
trending page = [puppeteer, puppeteer]
trending page = [nicrusso7, rex-gym]
trending page = [smicallef, spiderfoot]
trending page = [willmcgugan, rich]
trending page = [SwiftDocOrg, swift-doc]
trending page = [outflanknl, Scripts]
trending page = [globalcitizen, 2019-wuhan-coronavirus-data]
trending page = [sam-hosseini, freelancing-in-finland]
trending page = [hzwer, shareOI]
trending page = [sebastianruder, NLP-progress]
trending page = [giswqs, earthengine-py-notebooks]
trending page = [aamini, introtodeeplearning]
trending page = [Kethku, neovide]
trending page = [redcanaryco, atomic-red-team]
trending page = [baowenbo, DAIN]
trending page = [joeycastillo, The-Open-Book]
trending page = [meik97, XSpotify]