别折磨了 2023-04-20 16:37 采纳率: 57.1%
浏览 90
已结题

求解决这个困扰了我好几天的问题,element报错

#出现element错误

import time
import parsel
import requests
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
driver.get('https://www.amazon.de/')
word = input('请输入你需要的关键词:')
driver.find_element(by=By.NAME, value="field-keywords").send_keys(word)
sleep(5)
driver.find_element(By.XPATH, "//input[@type='submit']").click()  # 利用相对路径+属性值
driver.find_element(By.ID, "nav-search-submit-button").click()
url = 'https://www.amazon.de/s?k={}'.format(word)
headers = {
    'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/112.0',
    'Referer': 'https://www.amazon.de/'
}
res = requests.get(url=url, headers=headers)
html_data = res.text

for links in driver.find_elements(By.XPATH,
                                  '//*[@class="a-link-normal s-underline-text s-underline-link-text s-link-style '
                                  'a-text-normal"]'):
    time.sleep(1)
    print(links.get_attribute('href'))
a = []
for links in driver.find_elements(By.XPATH,
                                      '//*[@class="a-link-normal s-underline-text s-underline-link-text s-link-style '
                                      'a-text-normal"]'):
    time.sleep(1)
    print(links.get_attribute('href'))
    a.append(links.get_attribute('href'))
    driver.find_element(By.XPATH, '//*[@class="a-link-normal s-underline-text s-underline-link-text s-link-style '
                                  'a-text-normal"]').click()
    driver.find_element(By.ID, "sellerProfileTriggerId").click()
    box = driver.find_element(By.XPATH, "/html/body/div[1]/div[2]/div/div/div/div/div[9]/div/div/div").text
    print(box)
    driver.back()
    driver.back()
    alist = driver.find_elements(By.XPATH,
                                 '//*[@class="a-link-normal s-underline-text s-underline-link-text s-link-style '
                                 'a-text-normal"]')

for i in adriver.find_element(By.XPATH, '//*[@class="a-link-normal s-underline-text s-underline-link-text s-link-style '
                              'a-text-normal"]').click():

    print(i)


#报错为The element with the reference b4185c11-2ee6-45f4-91ce-ad7d9532d6e6 is stale; either its node document is not the active document, or it is no longer connected to the DOM
该怎么解决这个问题
#初步解决方刷新element,但是没效果

  • 写回答

2条回答 默认 最新

  • 喝茶品人生 2023-04-20 16:53
    关注

    你要用函数find_elements() 拿到所有匹配数据,修改:

    for link in driver.find_elements(By.XPATH, '//*[@class="a-link-normal s-underline-text s-underline-link-text s-link-style '
                                                'a-text-normal"]'):
        link.click()
        driver.find_element(By.ID, "sellerProfileTriggerId").click()
        box = driver.find_element(By.XPATH, "/html/body/div[1]/div[2]/div/div/div/div/div[9]/div/div/div").text
        print(box)
        driver.back()
        driver.back()
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月7日
  • 已采纳回答 4月29日
  • 创建了问题 4月20日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表