dqedu 发表于 2020-11-21 09:48

求助:基于Python和selenium的广东省干部培训网络学院自动学习脚本

源码来自本坛大神:https://www.52pojie.cn/thread-1105553-6-1.html
网上的大神做修改:http://www.zuidaima.com/share/4872602977733632.htm

我按步骤做了,运行出错,信息报错如下,求指点解决办法:
D:\driver>python 1.py

DevTools listening on ws://127.0.0.1:57801/devtools/browser/a93402c1-804d-4c8b-9
a1d-259e7f28cca4
nonlocal--该目录下还有8个视频未学习……
Traceback (most recent call last):
File "1.py", line 149, in <module>
    main()
File "1.py", line 143, in main
    run_main(video_unstudy_num, browser)
File "1.py", line 28, in run_main
    elem = browser.find_element_by_link_text('好的,我知道了')
File "C:\Users\Administrator\anaconda3\lib\site-packages\selenium\webdriver\re
mote\webdriver.py", line 428, in find_element_by_link_text
    return self.find_element(by=By.LINK_TEXT, value=link_text)
File "C:\Users\Administrator\anaconda3\lib\site-packages\selenium\webdriver\re
mote\webdriver.py", line 976, in find_element
    return self.execute(Command.FIND_ELEMENT, {
File "C:\Users\Administrator\anaconda3\lib\site-packages\selenium\webdriver\re
mote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
File "C:\Users\Administrator\anaconda3\lib\site-packages\selenium\webdriver\re
mote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Una
ble to locate element: {"method":"link text","selector":"好的,我知道了"}
(Session info: chrome=87.0.4280.66)

bookaccount 发表于 2020-11-21 10:13

本帖最后由 bookaccount 于 2020-11-21 10:25 编辑

selenium是这样的,没找到element就抛异常,解决办法一是try...catch住异常,一是先用driver.page_source.contains检查是否有你需要的字符串,然后再用find方法得到元素。

njbb888 发表于 2020-11-21 10:35

现在学习都造假了

dqedu 发表于 2020-11-21 10:42

njbb888 发表于 2020-11-21 10:35
现在学习都造假了

你想想一个学习网站能够充实多少人的腰包,你就明白为什么那么多无厘头的网络学习了。

xingc 发表于 2020-11-21 10:53

dqedu 发表于 2020-11-21 10:42
你想想一个学习网站能够充实多少人的腰包,你就明白为什么那么多无厘头的网络学习了。

确实,很多网络学习很水

bookaccount 发表于 2020-11-22 22:23

试试这两种方法:1. 在这两句
elem = browser.find_element_by_link_text('好的,我知道了')
elem.click()前面加一句 改成
if ('好的,我知道了' in browser.page_source):
      elem = browser.find_element_by_link_text('好的,我知道了')
      elem.click()
   
2.try:
      elem = browser.find_element_by_link_text('好的,我知道了')
      elem.click()
   except:
      pass

dqedu 发表于 2020-11-23 17:30

bookaccount 发表于 2020-11-22 22:23
试试这两种方法:1. 在这两句
elem = browser.find_element_by_link_text('好的,我知道了')
elem.cl ...

还是不行。不过还是要谢谢你的帮助。

yang586lin 发表于 2021-7-9 06:18

不能用了····
页: [1]
查看完整版本: 求助:基于Python和selenium的广东省干部培训网络学院自动学习脚本