ClericPy / ichrome

Chrome controller for Humans, based on Chrome Devtools Protocol(CDP) and python3.7+.
https://pypi.org/project/ichrome/
MIT License
227 stars 29 forks source link

浏览器接管 & 元素定位 #99

Closed ASE-ATWFlow closed 1 year ago

ASE-ATWFlow commented 2 years ago

请问有没有什么办法可以直接接管浏览器,而不是通过命令指定remote debugging port的方式;

ichrome的元素方式目前只支持css选择器进行定位吗?

ClericPy commented 2 years ago

ichrome 几乎就是依照 chrome cdp 协议包装了个守护进程和常用功能的 sdk, 简单的说就是个依照该通信协议打通的一个连接器, 没有更底层接管的方式(selenium 驱动那种), 因为绝大多数功能都可以满足了

至于元素方式, 如果会 JS 的话, 可以使用原生 JS 的方式来做复杂操作

ASE-ATWFlow commented 2 years ago

ichrome 几乎就是依照 chrome cdp 协议包装了个守护进程和常用功能的 sdk, 简单的说就是个依照该通信协议打通的一个连接器, 没有更底层接管的方式(selenium 驱动那种), 因为绝大多数功能都可以满足了

至于元素方式, 如果会 JS 的话, 可以使用原生 JS 的方式来做复杂操作

谢谢您的解答。 请问有没有在非开启远程调试端口的chrome,类似是用户打开的当前浏览器中进行自动化操作,类似在实现在dev tools中一样。

鉴于使用python封装CDP操作浏览器的用户对CDP本身并不很熟悉,才会用封装好的高层方法/函数,期待更多的功能与说明。

ClericPy commented 2 years ago

目前接管浏览器主要是官方给的这个方式, 不过我之前公司也做过让用户使用对应的启动方式(不用 ichrome 启动, 就是普通的启动快捷方式后面加 debugging port 参数), 然后用户正常使用的时候我也可以远程操作浏览器, 只不过需要做个端口转发(很简单, TCP 转发很好写) 否则外网访问不了, 因为 remote debugging port 参数是官方 CDP 协议推荐的方式, 而 CDP 协议就是 dev tools 遵循的一套协议

至于其他歪门邪道, 通过扩展可以接管部分浏览器功能, 但权限限制很多不建议尝试

可以考虑学学 JS, 就不用对 CDP 了解太多了, 无脑注入 JS 然后提取 JS 结果, 对于你说的场景, 如果是既定操作方案, 油猴脚本是我认为的目前最佳方案, 毕竟权限也比普通 JS 高, 只要学 JS 就够了, 关键是还支持在线更新代码

ASE-ATWFlow commented 2 years ago

至于其他歪门邪道, 通过扩展可以接管部分浏览器功能, 但权限限制很多不建议尝试 可以考虑学学 JS, 就不用对 CDP 了解太多了, 无脑注入 JS 然后提取 JS 结果, 对于你说的场景, 如果是既定操作方案, 油猴脚本是我认为的目前最佳方案, 毕竟权限也比普通 JS 高, 只要学 JS 就够了, 关键是还支持在线更新代码

请问有没有针对非启动快捷方式后面加 debugging port 参数,就用户默认打开的浏览器进行自动化操作; 获取扩展的方式进行浏览器接管以及不同实现方式的权限限制有推线的文档吗,想详细学习一下;

ClericPy commented 1 year ago

木有啊

Zedboy commented 1 year ago

请问有没有针对非启动快捷方式后面加 debugging port 参数,就用户默认打开的浏览器进行自动化操作; 获取扩展的方式进行浏览器接管以及不同实现方式的权限限制有推线的文档吗,想详细学习一下;

clicknium 可以试试这个

ClericPy commented 1 year ago

问题不再关注, 关闭