我试图进入每一个城市一个接一个在这里,但程序回来后,从第一页,它没有进入下一页,并显示StaleElementReferenceException
错误。
这是我的代码:
url = "https://www.agoda.com/region/punjab-province-pk.html"
s=Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=s)
driver.implicitly_wait(5)
driver.get(url)
a = ActionChains(driver)
cities = driver.find_elements(By.CSS_SELECTOR, value='dt[data-selenium="neighbor-name"]')
for city in cities:
print(city.text)
a.double_click(city).perform()
print(driver.current_url)
driver.back()
即使当我只是打印列表中的元素时,它也会显示所有元素,但当我编写这些用于向前和向后导航的代码行时,它不会打印或单击这些元素。
我做错了什么?
任何帮助都将不胜感激。
1条答案
按热度按时间wydwbb8l1#
当您通过单击
city
转到另一个页面时,最初在主页上的cities
列表中收集的所有web元素都将失效。在Selenium中,Web元素实际上是对物理web元素的引用。当您返回主页时,它将重新呈现,以便以前收集的对web元素的引用不再指向这些元素。要使代码正常工作,您需要在返回主页时再次收集
cities
列表。应采用以下方法: