电脑上按Ctrl + D,下次访问更方便
服务分类

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

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

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

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

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

chromedriver文件复制到Python安装目录的Scripts下

基本上到此,驱动安装就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测试,就算是入门了。就这么简单。

发表回复

登录后才能评论
联系我们

联系我们

微信客服:

fuwu360微信客服

工作时间:周一至周五,9:30-18:30,节假日休息

返回顶部