用 Python 作浏览器自动化操作应该选哪个模块?

  • 现在需要打开 chrome,填扩展的地址打开扩展的页面,再分析扩展的页面信息
  • 用 selenium 但是打开的是没有扩展的
  • pywinauto 好像不能操作页面?
  • 还有哪些可以用的?

用 Python 作浏览器自动化操作应该选哪个模块?
13 回复

谁说 selenium 没扩展?可以安装好所有东西后,在启动 selenium 的时候制定载入配置的路径啊。


用Python做浏览器自动化,目前最主流的选择是Selenium和Playwright。

Selenium是老牌标准,生态成熟,支持多种语言和浏览器。它的WebDriver协议是W3C标准,社区资源非常丰富。基本操作很直观:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://www.example.com")
element = driver.find_element(By.ID, "some_id")
element.click()
driver.quit()

Playwright是微软开源的现代方案,原生支持异步,自动等待机制更智能,录制功能很实用。它的API设计更友好:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    page.goto("https://www.example.com")
    page.click("#some_id")
    browser.close()

简单来说,需要兼容老项目或特定环境选Selenium,做新项目且追求开发效率和稳定性就选Playwright。

options = webdriver.ChromeOptions()
options.add_extension(EXT_PATH)

我需要扩展有数据,不是全新安装的扩展,chrome 是账号登录的,启动的时候加了配置目录也没用啊

selenium 耐操好用,打开谷歌的时候截图只会截取显示的部分不会截取整张网页,略坑,建议用 phantomjs,会截取整张网页。其他的都好。用过其他的,都没这玩意好用。

那个扩展是我用文件夹直接拖进去的,要怎么加?

暂时想到的是脚本精灵+bs4,ui 自动化 py 还是不好用

按键精灵,打错了

楼主这需求有点奇特呀。从正常测试的角度来说打开就应该是个新的浏览器,不然问题更多。

因为有个爬虫扩展,之前就制定了很多网站的规则,效果很好,所以想直接收集上面的数据,自己实现这个爬虫有点难度

selenium 可以呀,我就用 selenium 在 Travis-CI 上做 chrome 扩展的集成测试,一点问题都没有。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
opt=Options()
opt.add_argument(‘load-extension=%s’%‘path/to/your/extension’)
opt.add_argument(’–user-agent=my_user_agent’)
b=webdriver.Chrome(chrome_options=opt)

把扩展根目录放到 path/to/your/extension,然后就能正常加载了。

你的扩展可以用 navigator.userAgent 判断当前环境,初始化数据什么的就可以顺便做到了。

回到顶部