好友
阅读权限25
听众
最后登录1970-1-1
|
tinyu
发表于 2024-9-29 13:27
本帖最后由 tinyu 于 2024-9-29 14:07 编辑
问题背景:
最近不是临近国庆了嘛,自己跟着网上的教程学习用python+selenium写个自动打开12306扫码登录的界面,待扫码后跳转指定查票页面,等待用户看完(买完)票关掉浏览器后程序退出,其间遇到很多问题,能从网上翻到教程解决的,都试了,但就剩下两个问题,实在找不到有用的内容,没办法才来吾爱问问
(有源码,纯讨论,非求源求破)
问题1:
selenium每次运行总能在C:\Program Files 和C:\Program Files (x86)下留下“scoped”前缀文件夹,看着很杂乱,想怎么弄不让它生成,网上找到了
[Python] 纯文本查看 复制代码 options.add_argument(r'user-data-dir=C:\Windows\Temp\Chrome\User Data')
嗯,确实重定向了,但是两个文件夹下还是有点别的玩意(直接删了,没截图,忘记是啥玩意了)
然后接着找,
[Python] 纯文本查看 复制代码 browser.quit()
这个可以退出浏览器并清理文件,经过测试后,没问题了,
我现在的方案是加了个input,类似cmd的“按任意键继续”,一个回车就执行quit
[Python] 纯文本查看 复制代码 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
[13996:14860:0929/132042.399:ERROR:device_event_log_impl.cc(215)] [13:20:42.405] USB: usb_service_win.cc:415 Could not read device interface GUIDs: 系统找不到指定的文件。 (0x2)
[13996:14860:0929/132042.399:ERROR:device_event_log_impl.cc(215)] [13:20:42.406] USB: usb_device_handle_win.cc:1046 Failed to read descriptor from node connection: 连到系统上的设备没有发挥作用。 (0x1F)
按任意键退出浏览器[2136:18912:0929/132102.630:ERROR:ssl_client_socket_impl.cc(985)] handshake failed; returned -1, SSL error code 1, net_error -101
[2136:18912:0929/132114.609:ERROR:ssl_client_socket_impl.cc(985)] handshake failed; returned -1, SSL error code 1, net_error -101
虽然不影响代码,但是看着不怎么舒服,而我不懂怎么屏蔽这类输出
(我目前只会selenium,其他类型框架还在学习)
(如果某个新的框架,比如DrissionPage,playwright确实可以搞定这类问题,那还是值得一学)
源码部分内容展示:
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|