• Python selenium基础用法详解


    在这里插入图片描述​ 

    活动地址:CSDN21天学习挑战赛

    学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。

    学习日记

    目录

    学习日记

    一、Selenium库介绍

    1、Selenium简介

    2、Selenium的安装

    3、安装浏览器驱动

     4、下载驱动

    5、定位页面

    6、几种常见的页面元素定位方式

    id 定位

    name 定位 

    class 定位

    tag 定位

    link 定位

    7、浏览器控制 

    修改浏览器窗口大小

    浏览器前进、后退

    浏览器刷新

    二、常见操作


    一、Selenium库介绍
     

    1、Selenium简介

            Selenium 是一套完整的web应用程序测试系统,包含了测试的录制(Selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。Selenium 支持的语言包括C#,Java,Perl,PHP,Python 和 Ruby。目前,Selenium Web 驱动程序最受 Python 和 C#欢迎。 Selenium 测试脚本可以使用任何支持的编程语言进行编码,并且可以直接在大多数现代 Web 浏览器中运行。

    2、Selenium的安装

    打开 cmd,输入下面命令进行安装。

    pip install selenium

    执行后,使用 pip show selenium 查看是否安装成功。

    3、安装浏览器驱动

    针对不同的浏览器,需要安装不同的驱动

    Firefox 浏览器驱动:​​​​​​​​​​​​​​Firefox

    Chrome 浏览器驱动:Chrome

    Edge 浏览器驱动:​​​​​​​Edge

            推荐chrome谷歌浏览器作为模拟浏览器,因此还需要chromedriver作为驱动,但 Chrome 在用 selenium 进行自动化测试时还是有部分 bug ,常规使用没什么问题,但如果出现一些很少见的报错,可以使用 Firefox 进行尝试,毕竟是 selenium 官方推荐使用的。 

            现在,因为相应版本选择需要查看谷歌浏览器版本,在chrome浏览器上方地址栏输入: 

    chrome://settings/help

     4、下载驱动

    打开 Chrome驱动 。单击对应的版本。

    根据自己的操作系统,选择下载 

    将 chromedriver.exe 保存到任意位置,并把当前路径保存到环境变量中(我的电脑>>右键属性>>高级系统设置>>高级>>环境变量>>系统变量>>Path),添加的时候要注意不要把 path 变量给覆盖了,如果覆盖了千万别关机,然后百度。添加成功后使用下面代码进行测试。

    1. from selenium import webdriver
    2. driver = webdriver.Chrome()

    5、定位页面

    使用 selenium 定位页面元素的前提是你已经了解基本的页面布局及各种标签含义。要定位并获取页面中的信息,首先要使用 webdriver 打开指定页面,再去定位。

    1. from selenium import webdriver
    2. # 不自动关闭浏览器
    3. option = webdriver.ChromeOptions()
    4. option.add_experimental_option("detach", True)
    5. driver = webdriver.Chrome(chrome_options=option)
    6. driver.get('https://www.csdn.net/')

    6、几种常见的页面元素定位方式

    id 定位

    标签的 id 具有唯一性,假设有input标签如下。

    driver.find_element_by_id("toolbar-search-input")

    name 定位 

    name 指定标签的名称,在页面中可不唯一。假设有meta标签如下

    driver.find_element_by_name("keywords")

    class 定位

    class 指定标签的类名,在页面中可不唯一。假设有div标签如下

    driver.find_element_by_class_name("toolbar-search-container")

    tag 定位

    假设有div标签如下​​​​​​​

    driver.find_element_by_tag_name("div")

    link 定位

    link 专门用来定位文本链接

    顶顶顶

    driver.find_element_by_link_text("顶顶顶")
    

    7、浏览器控制 

    修改浏览器窗口大小

    1. from selenium import webdriver
    2. # Chrome浏览器
    3. driver = webdriver.Chrome()
    4. driver.get('https://www.csdn.net/')
    5. # 设置浏览器浏览器的宽高为:500x900
    6. driver.set_window_size(500, 900)

    显示全屏:

    1. from selenium import webdriver
    2. # Chrome浏览器
    3. driver = webdriver.Chrome()
    4. driver.get('https://www.csdn.net/')
    5. driver.maximize_window()

    浏览器前进、后退

    1. from selenium import webdriver
    2. from time import sleep
    3. driver = webdriver.Chrome()
    4. # 访问CSDN首页
    5. driver.get('https://www.csdn.net/')
    6. sleep(2)
    7. #访问CSDN个人主页
    8. driver.get('https://blog.csdn.net/m0_63794226?spm=3001.5343')
    9. sleep(2)
    10. #返回(后退)到CSDN首页
    11. driver.back()
    12. sleep(2)
    13. #前进到个人主页
    14. driver.forward()
    15. # 新标签中打开
    16. js = "window.open('https://www.csdn.net/')"
    17. driver.execute_script(js)

    浏览器刷新

    driver.refresh()# 刷新页面

    二、常见操作

  • 相关阅读:
    JS:轮播图终极版
    项目部署、
    修复所有 bug 并不能解决所有问题
    Flink1.15源码解析--启动脚本----start-cluster.sh
    Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程
    docker底层实现
    国产化之Arm64 CPU+银河麒麟系统安装.NetCore
    IDEA 高版本 PlantUML 插件默认主题修改
    文字转音频软件哪个好用?这几个方法你值得拥有
    视频剪辑练习
  • 原文地址:https://blog.csdn.net/m0_63794226/article/details/126447599