查看原文
其他

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

作者一小红牛 我的Python教程 2024-01-14


Python,速成心法

敲代码,查资料,问度娘

练习,探索,总结,优化

★★★★★博文创作不易,我的博文不需要打赏,也不需要知识付费,可以白嫖学习编程小技巧。使用代码的过程中,如有疑问的地方,欢迎大家指正留言交流。喜欢的老铁可以多多点赞+收藏分享+置顶,小红牛在此表示感谢。★★★★★

1.配置Chrome浏览器的选项

# @Author : 小红牛# 微信公众号:WdPythonoptions = 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-Agentoptions.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 timefrom selenium import webdriverfrom 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.设置浏览器的宽高为:600x800driver.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 timefrom 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 : 小红牛# 微信公众号:WdPythondriver.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.常见元素的基本方法:在百度先输入李白,清空李白,输入杜甫,最后点击查询按钮。
send_keys()模拟输入指定内容
clear()清除文本内容
is_displayed()判断该元素是否可见
get_attribute()获取标签属性值
size返回元素的尺寸
text

返回元素文本

is_enabled判断元素是否可用
is_selected判断元素是否被选中
submit()回车确定
click()

单击左键

import timefrom selenium import webdriverfrom 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入门篇  进阶篇  视频教程  Py安装

py项目  Python模块  Python爬虫   Json  

Xpath   正则表达式   Selenium  Etree  Css

Gui程序开发   Tkinter   Pyqt5  列表元组字典

数据可视化   matplotlib   词云图   Pyecharts

海龟画图   Pandas   Bug处理   电脑小知识

office自动化办公   编程工具   NumPy

继续滑动看下一个

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

作者一小红牛 我的Python教程
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存