Python+Selenium+ChromeDriver之爬虫(或web测试)

要自动化测试 Chrome 谷歌浏览器,首先要下载 chromedriver 驱动

下载地址是 http://npm.taobao.org/mirrors/chromedriver/

注意版本需与浏览器版本对应,否则在运行时会出错

下载后解压,然后把 chromedriver 文件复制到 Python 安装目录的 Scripts 下。以下是我的 Windows 上的 Python 环境,如果是 Linux,则可以保存到 /usr/local/bin/

Python+Selenium+ChromeDriver 之爬虫(或 web 测试)

基本上到此,驱动安装就 ok 了。下面开始上 Python 代码:

#! -*- encoding:utf-8 -*-
"""selenium 操控谷歌浏览器访问网页"""
import platform
import time

from selenium.webdriver.chrome.service import Service
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
if platform.system() != 'Windows':
    # 括号内填写 驱动路径 linux 系统需要这样
    driver_service = Service(r'/usr/local/bin/chromedriver')
    driver_service.command_line_args()
    driver_service.start()

chrome_options = webdriver.ChromeOptions()
# 解决 DevToolsActivePort 文件不存在的报错
chrome_options.add_argument('--no-sandbox')
# 指定浏览器分辨率
chrome_options.add_argument('window-size=1920x3000')
# 谷歌文档提到需要加上这个属性来规避 bug
chrome_options.add_argument('--disable-gpu')
# 隐藏滚动条, 应对一些特殊页面
chrome_options.add_argument('--hide-scrollbars')
# 不加载图片, 提升速度
chrome_options.add_argument('blink-settings=imagesEnabled=false')
# 浏览器不提供可视化页面. linux 下如果系统不支持可视化不加这条会启动失败
# chrome_options.add_argument('--headless')
# 如果要设置代理,请在这里设置代理 ip 和端口
# proxy_ip_port = '192.168.0.2:8081'
# chrome_options.add_argument(f"--proxy-server=http://{proxy_ip_port}")
# 初始化浏览器对象, 保存浏览器对象为实例属性, 方便调用
browser = webdriver.Chrome(chrome_options=chrome_options)
try:
    browser.get("https://www.baidu.com")
    input = browser.find_element_by_id("kw")
    input.send_keys("Python")
    input.send_keys(Keys.ENTER)
    wait = WebDriverWait(browser, 10)
    wait.until(EC.presence_of_element_located((By.ID, "content_left")))
    print(browser.current_url)
    print(browser.get_cookies())
    print(browser.page_source)
    time.sleep(10)
finally:
    browser.quit()
    if platform.system() != 'Windows':
        # 注意:在 linux 系统上需要这么做,不然会留下大量 chrome 进程,导致系统内存消耗光
        driver_service.stop()

python 操作谷歌浏览器做爬虫,做 web 测试,就算是入门了。就这么简单。

正文完
 0
评论(没有评论)