• python实现自动播放自动执行出错


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 knowingqi 2024-06-13 13:56 采纳率: 0% 浏览 9 首页/ 编程语言 / python实现自动播放自动执行出错 python 您好!我运行代码,每次只能弹出登陆页面,无提示窗口,登陆进去后,无自动执行,尝试修改 'path = f'/html/body/div/div/div/section/div/div[1]/div/div[2]/div/div[1]/section/div/div[{aa}]/div[{i + 1}]' ```这一行为 ```python '/html/body/div/div/div/section/div/div[1]/div/div[2]/div/div[1]/section/div/div[aa]/div[i+1]/p[1]' ```,不能解决问题,改成这样也不行 ```python ' path = f'//*[@id="root"]/div/div/section/div/div[1]/div/div[2]/div/div[1]/section/div/div[aa]/div[i+1]/p[1]' ,不知道问题出在哪里,报错如下: D:\pycharm\work\pythonProject1\.venv\Scripts\python.exe D:\pycharm\work\pythonProject1\ShuaWangKe\ShuaWangKe.py D:\pycharm\work\pythonProject1\ShuaWangKe\ShuaWangKe.py:61: DeprecationWarning: executable_path has been deprecated, please pass in a Service object driver = webdriver.Chrome(driver_path) 正在播放第1章,1.8小节 Traceback (most recent call last): File "D:\pycharm\work\pythonProject1\ShuaWangKe\ShuaWangKe.py", line 105, in main() File "D:\pycharm\work\pythonProject1\ShuaWangKe\ShuaWangKe.py", line 85, in main a = driver.find_element(By.XPATH, path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\work\pythonProject1\.venv\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 856, in find_element return self.execute(Command.FIND_ELEMENT, { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\work\pythonProject1\.venv\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 429, in execute self.error_handler.check_response(response) File "D:\pycharm\work\pythonProject1\.venv\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 243, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div/div/div/section/div/div[1]/div/div[2]/div/div[1]/section/div/div[1]/div[8]"} (Session info: chrome=119.0.6045.105) Stacktrace: GetHandleVerifier [0x00007FF7915A82B2+55298] (No symbol) [0x00007FF791515E02] (No symbol) [0x00007FF7913D05AB] (No symbol) [0x00007FF79141175C] (No symbol) [0x00007FF7914118DC] (No symbol) [0x00007FF79144CBC7] (No symbol) [0x00007FF7914320EF] (No symbol) [0x00007FF79144AAA4] (No symbol) [0x00007FF791431E83] (No symbol) [0x00007FF79140670A] (No symbol) [0x00007FF791407964] GetHandleVerifier [0x00007FF791920AAB+3694587] GetHandleVerifier [0x00007FF79197728E+4048862] GetHandleVerifier [0x00007FF79196F173+4015811] GetHandleVerifier [0x00007FF7916447D6+695590] (No symbol) [0x00007FF791520CE8] (No symbol) [0x00007FF79151CF34] (No symbol) [0x00007FF79151D062] (No symbol) [0x00007FF79150D3A3] BaseThreadInitThunk [0x00007FFC1E5E257D+29] RtlUserThreadStart [0x00007FFC1F3CAA48+40] ``` 展开全部 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    2条回答 默认 最新

    • 阿里嘎多学长 2024-06-13 14:10
      关注

      以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


      从你提供的错误信息来看,主要问题是 NoSuchElementException,这表示Selenium无法使用提供的XPath选择器找到元素。这通常发生在以下几个方面:

      1. XPath选择器错误:可能是XPath选择器不正确,无法匹配到页面上的元素。
      2. 元素尚未加载完成:页面上的元素可能还没有完全加载,导致Selenium尝试查找元素时找不到。
      3. 页面结构变化:智联e学的网站可能更新了页面结构,导致原有的XPath选择器不再适用。

      解决方法

      1. 检查XPath选择器:确保你的XPath选择器是正确的。你可以使用浏览器的开发者工具(F12)来检查元素的实际XPath。注意,XPath选择器中的方括号[]内的数字应该表示元素的位置或者属性值,而不是变量替换的位置。

      2. 等待元素加载:在尝试查找元素之前,使用Selenium提供的等待机制,例如WebDriverWaitexpected_conditions,来确保元素已经加载到DOM中。

      3. 更新XPath选择器:如果网站结构有更新,你需要根据新的页面结构来更新XPath选择器。

      4. 处理动态内容:如果页面上的内容是动态生成的,可能需要使用更通用的XPath选择器,或者使用其他属性(如idclassname等)来定位元素。

      5. 检查异常信息:从你的异常信息来看,"selector":"/html/body/div/div/div/section/div/div[1]/div/div[2]/div/div[1]/section/div/div[1]/div[8]" 这部分的div[8]可能需要根据实际情况调整。

      6. 使用更具体的选择器:有时候,使用更具体的选择器可以避免一些不必要的错误。例如,如果可能的话,使用idclass属性来定位元素。

      7. 检查网络问题:确保你的网络连接没有问题,因为网络问题也可能导致元素加载失败。

      示例代码

      这里是一个使用WebDriverWait等待元素加载的例子:

      from selenium import webdriver
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.support import expected_conditions as EC
      
      # 设置WebDriverWait的超时时间
      wait = WebDriverWait(driver, 10)
      
      # 使用更具体的XPath选择器
      path = '/html/body/div/div/div/section/div/div[1]/div/div[2]/div/div[1]/section/div/div[具体位置]/div[具体位置]'
      
      try:
          # 等待元素可点击
          element = wait.until(EC.element_to_be_clickable((By.XPATH, path)))
          # 执行操作,例如点击
          element.click()
      except TimeoutException:
          print("超时,元素未加载")
      

      参考资料

      请注意,自动刷课可能违反了智联e学的使用条款,使用时请确保你了解并遵守相关规定。此外,网站结构的变化可能导致自动化脚本需要频繁更新,这可能不是最稳定或可靠的解决方案。

      展开全部

      评论 编辑记录
    • ToddWu404 2024-06-14 23:54
      关注

      报错很明确的告诉你了找不到对应的element
      selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element
      因为不知道网站具体的dom结构,也没办法明确告诉你如何修改,但要是页面只有一个视频的话,通常可以直接用video标签直接获取到
      我做的大部分刷视频脚本基本都是直接获取video标签的
      你可以尝试下:a = driver.find_element(By.TAG_NAME,'video')

      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    [java——基础] 双亲委派机制
    【Java】volatile-内存可见性问题
    带你深入理解3.4.2的版本更新,对用户带来了什么?
    wps excel js编程
    【Leetcode周赛306】6148、6149、6150、6151
    删除list中除最后一个之外所有的数据
    Java审计框架基础
    如何快速debug定位SSD延迟问题?
    系列十四、Redis的集群(一)
    如何应对继承的双面性
  • 原文地址:https://ask.csdn.net/questions/8118080