【发布时间】:2021-05-30 22:20:06
【问题描述】:
我查看了整个 Stackoverflow 以尝试找到此问题的答案,但找不到。我的代码有什么问题是它单击第一个元素,然后获取我想要的“href”,但在那之后立即停止,并抛出类似
的错误box[x].click()
&
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
这是代码
box = driver.find_elements_by_class_name("info-section.info-primary")
x = 0
#for x in range(0, len(box)):
while True:
while x <= len(box):
#if box[x].is_displayed():
driver.implicitly_wait(2)
# error is happening here
box[x].click()
x += 1
try:
website = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CLASS_NAME, "primary-btn.website-link"))
)
print(website.get_attribute('href'))
driver.back()
except:
driver.back()
if not driver.find_element_by_class_name('ajax-page'):
break
else:
driver.find_element_by_class_name('ajax-page').click()
【问题讨论】:
-
看起来点击重定向到另一个页面。如果是这样,无论何时调用
driver.back(),您都应该等待页面再次加载,然后才能访问该元素。 -
您确定
driver.implicitly_wait(2)正在等待足够的时间来加载上一页吗?