Message: stale element reference: element is not attached to the page document

背景:获取一组按钮,数量不确定,得到所有按钮A之后使用get_attribute(“innerHTML”)获取xpath并用A.find_element来获取每个按钮
代码如下:
注:get_pages是根据具体元素使用正则得到的

el_pager = driver.find_element(by=By.XPATH,value="")
s = el_pager.get_attribute("innerHTML")
page_number = get_pages(s)
for each_page in page_number:
    el_pager.find_element(by=By.XPATH, value="li[%s]" % each_page).click()
    time.sleep(5)
    all_batch = driver.find_element(by=By.XPATH,value="")
    time.sleep(5)
    print(all_batch.get_attribute("innerHTML"))
    time.sleep(5)

报错:Message: stale element reference: element is not attached to the page document
查询:网上大多都是说网页元素未刷新,导致获取失败,强制sleep,没有用
根本原因:跳转之后所引用的元素已从 DOM 结构中删除,需要重新生成一个webdriver
修改之后:

el_pager = driver.find_element(by=By.XPATH,value="")
s = el_pager.get_attribute("innerHTML")
page_number = get_pages(s)
for each_page in page_number:
    el_pager = driver.find_element(by=By.XPATH,
                                   value="")
    el_pager.find_element(by=By.XPATH, value="li[%s]" % each_page).click()
    time.sleep(5)
    all_batch = driver.find_element(by=By.XPATH,
                                    value="")
    time.sleep(5)
    print(all_batch.get_attribute("innerHTML"))
    time.sleep(5)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值