Selenium自动化教程02:浏览器options配置及常用的操作方法

发布时间:2023年12月28日

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自动化办公 编程工具
在这里插入图片描述

文章来源:https://blog.csdn.net/gxz888/article/details/135266240
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。