活动地址: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 变量给覆盖了,如果覆盖了千万别关机,然后百度。添加成功后使用下面代码进行测试。

from selenium import webdriver
driver = webdriver.Chrome()

5、定位页面

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

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

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

id 定位

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

<input id="toolbar-search-input" autocomplete="off" type="text" value="" placeholder="C++难在哪里?">

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

name 定位

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

<meta name="keywords" content="CSDN博客,CSDN学院,CSDN论坛,CSDN直播">

driver.find_element_by_name("keywords")

class 定位

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

<div class="toolbar-search-container">

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

tag 定位

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

<div class="toolbar-search-container">

driver.find_element_by_tag_name("div")

link 定位

link 专门用来定位文本链接

<div class="practice-box" data-v-04f46969="">顶顶顶</div>

driver.find_element_by_link_text("顶顶顶")

7、浏览器控制

修改浏览器窗口大小

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

显示全屏:

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

浏览器前进、后退

from selenium import webdriver
from time import sleepdriver = webdriver.Chrome()# 访问CSDN首页
driver.get('https://www.csdn.net/')
sleep(2)
#访问CSDN个人主页
driver.get('https://blog.csdn.net/m0_63794226?spm=3001.5343')
sleep(2)
#返回(后退)到CSDN首页
driver.back()
sleep(2)
#前进到个人主页
driver.forward()
# 新标签中打开
js = "window.open('https://www.csdn.net/')"
driver.execute_script(js)

浏览器刷新

driver.refresh()# 刷新页面

二、常见操作

Python selenium基础用法详解相关推荐

  1. Python中self用法详解

    Python中self用法详解 https://blog.csdn.net/CLHugh/article/details/75000104 首页 博客 学院 下载 图文课 论坛 APP 问答 商城 V ...

  2. [网络安全提高篇] 一一九.恶意软件动态分析经典沙箱Cape的安装和基础用法详解

    终于忙完初稿,开心地写一篇博客. "网络安全提高班"新的100篇文章即将开启,包括Web渗透.内网渗透.靶场搭建.CVE复现.攻击溯源.实战及CTF总结,它将更加聚焦,更加深入,也 ...

  3. 什么是多态,Python多态及用法详解

    什么是多态,Python多态及用法详解 在面向对象程序设计中,除了封装和继承特性外,多态也是一个非常重要的特性,本节就带领大家详细了解什么是多态. 我们都知道,Python 是弱类型语言,其最明显的特 ...

  4. python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解

    本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...

  5. python的继承用法_python中继承有什么用法?python继承的用法详解

    本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...

  6. 【 Python 中 int 用法详解】(转载)

    Python 中 int 用法详解 欢迎转载,转载请注明出处! 文章目录 Python 中 int 用法详解 0. 参考资料 1. int 的无参数调用 2. int 接收数字作为参数 3. int ...

  7. Python 中 int 用法详解

    Python 中 int 用法详解 欢迎转载,转载请注明出处! 文章目录 Python 中 int 用法详解 0. 参考资料 1. int 的无参数调用 2. int 接收数字作为参数 3. int ...

  8. 信息学奥赛 python 教程_Python在信息学竞赛中的运用及Python的基本用法(详解)

    前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在<算法竞赛入门经典-训练指南>中所说的一样,如果会用 ...

  9. ES6 — Promise基础用法详解(resolve、reject、then、catch,all,)

    ES6 - Promise基础用法详解 Promise 是一个构造函数,它自身拥有all.reject.resolve这几个眼熟的方法, 原型上有then.catch等同样熟悉的方法. 所以,在开始一 ...

最新文章

  1. LeetCode Queue Reconstruction by Height(贪心)
  2. keepoutlayer设定_AD的keepout层是做什么用的,如何使用
  3. curl php 模拟来源_PHP CURL伪造IP和来源
  4. AQS理解之三,由刚才写的锁转变成一个公平锁
  5. 只用ng test命令测试单个单元测试用例的另一种方法
  6. Hbase Shell Filter 过滤
  7. Android wifi驱动的移植 realtek 8188
  8. 使用maven在netbeans下构建wicket项目
  9. OpenCasCade图元拖动问题
  10. php控制表格颜色,php – 表格列的背景颜色
  11. ALOHA协议与CSMA协议
  12. 如何选择和更换阿里云服务器操作系统?
  13. html语言怎么在虚线中加字,html – 用CSS添加虚线spacer / infill
  14. Kafka原理+操作+实战
  15. LTE----013 UE开机后的第一件事: PLMN选择
  16. Qt5学习 模仿qq音乐播放器样式(1)
  17. 2020-01-24
  18. pdf能阅读html吗,PDF如何转HTML?办公党必备!
  19. Edge无法翻译、插件无法下载(已解决)
  20. [Unity]资源冗余排查工具

热门文章

  1. 接口之----手机号验证接口api
  2. Saturn Console集群搭建
  3. 《麦肯锡方法》读书笔记14
  4. 内网穿透软件对比——cpolar : 网云穿(上)
  5. 什么叫蓝筹股?什么叫蓝筹股票的特点
  6. 利用MATLAB进行系统时域分析,matlab控制系统时域分析教程
  7. 【Web前端学习之路】JavaScript入门 (黑马课程学习笔记)
  8. C#封装,继承,多态
  9. 一个很不错的jsoneditor组件
  10. 学习笔记——JAVA执行javascript