1.配置Chrome浏览器的选项
# @Author : 小红牛
# 微信公众号:WdPython
options = webdriver.ChromeOptions() # 创建配置对象
options.add_argument('lang=zh_CN.UTF-8') # 设置中文
options.add_argument('--headless') # 无头参数,浏览器隐藏在后台运行
options.add_argument('--disable-gpu') # 禁用GPU加速
options.add_argument('--start-maximized') # 浏览器最大化
options.add_argument('--window-size=1920x1024') # 设置浏览器分辨率(窗口大小)
options.add_argument('--user-agent=""') # 设置请求头的User-Agent
options.add_argument('--incognito') # 隐身模式(无痕模式)
options.add_argument(f'--proxy-server={proxy}') # 添加IP代理 proxy=f"http://{ip}:{port}"
# 关闭'Chrome正受到,自动测试软件的控制'的提示
options.add_experimental_option('useAutomationExtension', False)
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_experimental_option('prefs', {'profile.managed_default_content_settings.images': 2}) # 禁用图片加载
driver.set_page_load_timeout(20) # 设置连接超时20秒
options.add_experimental_option('detach', True) # 不自动关闭浏览器
driver = webdriver.Chrome(options=options) # 创建浏览器对象
driver.get('https://www.baidu.com')
2.修改浏览器窗口大小,set_window_size() 方法来修改浏览器窗口的大小,maximize_window() 方法可以实现浏览器全屏显示,get_window_size()获取网页的窗口大小。
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
# 访问百度首页
driver.get('https://www.baidu.com')
# 获取网页的窗口大小
print(driver.get_window_size()) # {'width': 1050, 'height': 708}
# 1.设置浏览器的宽高为:600x800
driver.set_window_size(600, 800)
time.sleep(3)
# 2.网页界面最大化
driver.maximize_window()
time.sleep(3)
# 关闭网页
driver.quit()
3.浏览器前进&后退,webdriver 提供 back 和 forward 方法来实现页面的后退与前进。下面我们 ①进入百度首页,②打开百度图片网,③back 返回百度首页,④ forward 前进到百度图片网。为了看到自动化的过程,可以加延时处理,driver.title显示网页的标题。
import time
from selenium import webdriver
driver = webdriver.Chrome()
# 1.访问百度首页
driver.get('https://www.baidu.com/')
print(driver.title) # 百度一下,你就知道
time.sleep(2)
# 2.访问百度图片,主页
driver.get('https://image.baidu.com/')
print(driver.title) # 百度图片-发现多彩世界
time.sleep(2)
# 3.返回(后退)到百度首页
driver.back()
time.sleep(2)
# 4.前进到百度图片网
driver.forward()
大家会发现第2次 get() 打开新页面时,会在原来的页面打开,而不是在新标签中打开。如果想的话,可以执行 js 语句来打开新的标签。
js = "window.open('https://image.baidu.com/')"
driver.execute_script(js)
4.常用的浏览器操作方法,自己敲代码练习一下,这里就不一一演示了。
# @Author : 小红牛
# 微信公众号:WdPython
driver.maximize_window() # 最大化浏览器
driver.set_window_size(w,h) # 设置浏览器大小 单位像素
driver.set_window_position(x,y) # 设置浏览器位置
driver.back() # 后退操作
driver.forward() # 前进操作
driver.refresh() # 刷新操作
driver.close() # 关闭当前主窗口(主窗口:默认启动那个界面,就是主窗口)
driver.quit() # 关闭driver对象启动的全部页面
driver.get() #要打开的网址
driver.title # 获取当前页面title信息
driver.current_url # 获取当前页面url信息
# 截图预览
driver.get_screenshot_as_file('截图.png')
# 浏览器名称
driver.name
# 网页源码
driver.page_source
5.常见元素的基本方法:在百度先输入李白,清空李白,输入杜甫,最后点击查询按钮。
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
# 1.查找输入框,并输入关键词李白
input = driver.find_element(By.ID, 'kw')
input.send_keys('李白')
time.sleep(1)
# 2.清除李白,输入杜甫
input.clear()
time.sleep(1)
input.send_keys('杜甫')
button = driver.find_element(By.ID, 'su')
button.click()
# 输出按钮的大小
print(button.size) # {'height': 40, 'width': 112}
print(button.is_displayed()) # True
# 输出value属性的值
print(button.get_attribute('value')) # 百度一下
time.sleep(5)
# 关闭网页
driver.quit()
完毕!!感谢您的收看
----------★★历史博文集合★★----------
我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具