关于python的selenium模块问题:
本帖最后由 tinyu 于 2024-9-29 14:07 编辑问题背景:
最近不是临近国庆了嘛,自己跟着网上的教程学习用python+selenium写个自动打开12306扫码登录的界面,待扫码后跳转指定查票页面,等待用户看完(买完)票关掉浏览器后程序退出,其间遇到很多问题,能从网上翻到教程解决的,都试了,但就剩下两个问题,实在找不到有用的内容,没办法才来吾爱问问
(有源码,纯讨论,非求源求破)
问题1:
selenium每次运行总能在C:\Program Files 和C:\Program Files (x86)下留下“scoped”前缀文件夹,看着很杂乱,想怎么弄不让它生成,网上找到了
options.add_argument(r'user-data-dir=C:\Windows\Temp\Chrome\User Data')
嗯,确实重定向了,但是两个文件夹下还是有点别的玩意(直接删了,没截图,忘记是啥玩意了)
然后接着找,
browser.quit()
这个可以退出浏览器并清理文件,经过测试后,没问题了,
我现在的方案是加了个input,类似cmd的“按任意键继续”,一个回车就执行quit
input("按任意键退出浏览器")
browser.quit()
break
但我在想能不能监测selenium打开的浏览器如果被关闭就自动执行quit而不用特意转回命令行窗口再按个键,这里就不会了
问题2:
我直接运行py源码没问题,但是用pyinstaller打包完一旦执行到selenium阶段就有部分“异常”输出,不影响正常代码运行,但就不美观,
输出内容是这样
DevTools listening on ws://127.0.0.1:60404/devtools/browser/c383eb64-ebb3-4cc1-bee6-c173acc89e9a
USB: usb_service_win.cc:415 Could not read device interface GUIDs: 系统找不到指定的文件。 (0x2)
USB: usb_device_handle_win.cc:1046 Failed to read descriptor from node connection: 连到系统上的设备没有发挥作用。 (0x1F)
按任意键退出浏览器 handshake failed; returned -1, SSL error code 1, net_error -101
handshake failed; returned -1, SSL error code 1, net_error -101
虽然不影响代码,但是看着不怎么舒服,而我不懂怎么屏蔽这类输出
(我目前只会selenium,其他类型框架还在学习)
(如果某个新的框架,比如DrissionPage,playwright确实可以搞定这类问题,那还是值得一学)
源码部分内容展示:
这个框架太老了,早该退休了,换playwright吧,比这个强大的多 之前好像遇到过类似逻辑,水平有限,只看了看第一个问题,既然是浏览器,那就是对象,是对象就有存在状态,多线程监测一下当前对象的状态,应该是可以的吧?或者可能存在更简单的对象方法来监测是否存在。 用DrissionPage ReLoading 发表于 2024-9-29 13:50
这个框架太老了,早该退休了,换playwright吧,比这个强大的多
selenium至少还会写出我需要的功能,playwright只听过名字,没了,啥都不会 DrissionPage比selenium简单好用,我一个外行自学的,selenium搞好久不会,DrissionPage没多久就入门了 bean0283 发表于 2024-9-29 14:16
DrissionPage比selenium简单好用,我一个外行自学的,selenium搞好久不会,DrissionPage没多久就入门了
ok,我有空去试试能不能迁移功能,主要是网上12306这类教程基本都是selenium的,没找着Drissionpage 早换playwright了,selenium不好用,只是资历老点而已 chrome_options = Options()
# 忽略证书错误
chrome_options.add_argument("--ignore-certificate-errors")
# 忽略 DevTools listening on ws://127.0.0.1... 提示
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) 本帖最后由 梦汐 于 2024-9-29 14:59 编辑
那是浏览器的异常通知,关闭掉就行
页:
[1]
2