吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2061|回复: 12
收起左侧

[求助] python使用selenium能否实现网页上的键鼠操作(需后台窗口运行)

[复制链接]
szsherwin 发表于 2021-12-2 10:29
本帖最后由 szsherwin 于 2021-12-2 11:17 编辑

问题如下:
现在在使用python 使用 selenium 的 前台窗口上进行网页的操作是没问题的,但是每次只能执行一个脚本程序,现在同时运行多个python程序脚本任务来执行selenium 任务。所以想请教,不知道能否实现selenium浏览器在后台窗口绑定后,在后台运行python的程序执行页面上的键鼠操作
请问:是否可以实现后台窗口操作(目的是),如果可以请帮忙指点一下

初学选手水平有限,不知道问题描述清楚了没有,请各位高手不吝赐教!谢谢!

再明确一下:需要运行到网页动作的时候,能不能做到后台窗口操作(需要有窗口的模式),类似于按键精灵大漠插件那样绑定后台窗口那样运行,selenium窗口不在最前面窗口也能运行。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

楚子沦i 发表于 2021-12-2 10:36
phantomjs  无窗口
chrome  设置参数
都能实现无界面操作浏览器

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
华说生活慢节奏 + 1 + 1 附议

查看全部评分

xiaokaic 发表于 2021-12-2 10:55
可能是你每次启动selenium ,都是调用的同一个chrome 浏览器配置,那么就无法多个chrome 呀。多个程序 = 多个浏览器配置呢

解决办法很多,先推荐个最简单有效的,你用火狐浏览器。它自己会做多用户区分。

chrome 多用户 麻烦些,selenium 启动chrome 的时候 可以指定 chrome用户目录 , --user-data-dir=不同目录 ,这个参数自己搜一下就懂了,让这个目录每次都是不同的,就可以启动多个浏览器。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
szsherwin + 1 + 1 热心回复!

查看全部评分

 楼主| szsherwin 发表于 2021-12-2 11:10
楚子沦i 发表于 2021-12-2 10:36
phantomjs  无窗口
chrome  设置参数
都能实现无界面操作浏览器

谢谢回复,因为是需要实际页面上做操作(某些网站要这么操作才有效),不是需要phantomjs无窗口模式来做抓取,所以还是要能看到操作。请帮忙再看看
 楼主| szsherwin 发表于 2021-12-2 11:15
xiaokaic 发表于 2021-12-2 10:55
可能是你每次启动selenium ,都是调用的同一个chrome 浏览器配置,那么就无法多个chrome 呀。多个程序 = 多 ...

感谢您提供的思路!
因为要运用selenium做一些参数配置,所以还是需要用selenium。
您的多个运行selenium的思路非常好。
我需要运行到网页动作的时候,能不能做到后台窗口操作(需要有窗口的模式),类似于按键精灵大漠插件那样绑定后台窗口那样运行,这样既能调用多个浏览器又可以同时互不干扰执行各自的脚本。
xiaokaic 发表于 2021-12-2 12:34
szsherwin 发表于 2021-12-2 11:15
感谢您提供的思路!
因为要运用selenium做一些参数配置,所以还是需要用selenium。
您的多个运行seleni ...

selenium 和 浏览器 是一对一的关系,启动了selenium 拉起来浏览器,所有的操作都是 selenium 控制的,浏览器窗口是最小化还是干嘛 都可以呀。
Mr.[先知] 发表于 2021-12-2 13:08
用参数 多用户分区
 楼主| szsherwin 发表于 2021-12-2 13:49
xiaokaic 发表于 2021-12-2 12:34
selenium 和 浏览器 是一对一的关系,启动了selenium 拉起来浏览器,所有的操作都是 selenium 控制的,浏 ...

我测试过,如果selenium浏览器运行中,必须在最前面窗口才可以操作哦,窗口处于不可见状态就无法操作。
 楼主| szsherwin 发表于 2021-12-2 13:51
Mr.[先知] 发表于 2021-12-2 13:08
用参数 多用户分区

感谢回复,我想请教的重点是 selenium浏览器后台运行,暂时重点不是多用户多浏览器问题。请帮忙再指导一下!
珍珠奶茶丶板牙 发表于 2021-12-2 14:21
本帖最后由 珍珠奶茶丶板牙 于 2021-12-2 14:23 编辑

[Python] 纯文本查看 复制代码
class WebDriver:
    def __init__(self):
        self._options = webdriver.ChromeOptions()
        self._options.add_argument('--disable-infobars')  # 禁止策略化
        self._options.add_argument('--no-sandbox')  # 解决DevToolsActivePort文件不存在的报错
        self._options.add_argument('window-size=1920x3000')  # 指定浏览器分辨率
        self._options.add_argument('--disable-gpu')  # 谷歌文档提到需要加上这个属性来规避bug
        self._options.add_argument('--incognito')  # 隐身模式(无痕模式)
        self._options.add_argument('--start-maximized')  # 最大化运行(全屏窗口),不设置,取元素会报错
        self._options.add_argument('--hide-scrollbars')  # 隐藏滚动条, 应对一些特殊页面
        self._options.add_argument('--ignore-certificate-errors')  # 无视ssl证书
        self._options.add_argument('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36')
        # self._options.add_argument('--headless')  # 浏览器不提供可视化页面
        # self._options.add_argument('--disable-javascript')  # 禁用javascript
        # self._options.add_argument('blink-settings=imagesEnabled=false')  # 不加载图片, 提升速度
        self._prefs = {}
        # 设置这两个参数就可以避免密码提示框的弹出
        self._prefs['credentials_enable_service'] = False
        self._prefs['profile.password_manager_enabled'] = False
        # self._prefs['profile.managed_default_content_settings.images'] = 2  # 不显示图片提高代码速度
        self._options.add_experimental_option('prefs', self._prefs)
        self._driver = webdriver.Chrome(service=Service(r"./chromedriver"), options=self._options)

    def get_driver(self):
        return self._driver
拿着driver去做其他操作吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 17:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表