首页 > 科技 > Python+Selenium+ChromeDriver之爬虫(或web测试)

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

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

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

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

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

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


↓ 头条的代码排版格式缩进有点问题,请点击下面的“了解更多”链接查看完整的详细。有问题请给我留言。

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/221892.html