目录

简介

selenium安装

安装浏览器驱动

确定浏览器版本

下载驱动

定位页面元素

打开指定页面

id 定位

name 定位

class 定位

tag 定位

xpath 定位

css 定位

link 定位

partial_link 定位

浏览器控制

修改浏览器窗口大小

浏览器前进&后退

浏览器刷新

浏览器窗口切换

常见操作

鼠标控制

单击左键

单击右键

双击

拖动

鼠标悬停

键盘控制

END资源分享

软件测试面试小程序

简介

Selenium 是最广泛使用的开源 Web UI(用户界面)自动化测试套件之一。Selenium 支持的语言包括C#,Java,Perl,PHP,Python 和 Ruby。目前,Selenium Web 驱动程序最受 Python 和 C#欢迎。 Selenium 测试脚本可以使用任何支持的编程语言进行编码,并且可以直接在大多数现代 Web 浏览器中运行。在爬虫领域 selenium 同样是一把利器,能够解决大部分的网页的反爬问题,但也不是万能的,它最明显的缺点就是速度慢。下面就进入正式的 study 阶段。

selenium安装

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

pip install -i https://pypi.douban.com/simple selenium

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

安装浏览器驱动

针对不同的浏览器,需要安装不同的驱动。下面列举了常见的浏览器与对应的驱动程序下载链接,部分网址需要 “科学上网” 才能打开哦(dddd)。

Firefox 浏览器驱动:FirefoxChrome 浏览器驱动:ChromeIE 浏览器驱动:IEEdge 浏览器驱动:EdgePhantomJS 浏览器驱动:PhantomJSOpera 浏览器驱动:Opera

这里以安装 Chrome 驱动作为演示。但 Chrome 在用 selenium 进行自动化测试时还是有部分 bug ,常规使用没什么问题,但如果出现一些很少见的报错,可以使用 Firefox 进行尝试,毕竟是 selenium 官方推荐使用的。

确定浏览器版本

在新标签页输入 chrome://settings/ 进入设置界面,然后选择 【关于 Chrome】

查看自己的版本信息。这里我的版本是94,这样在下载对应版本的 Chrome 驱动即可。

下载驱动

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

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

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

from selenium import webdriver

# Chrome浏览器

driver = webdriver.Chrome()

定位页面元素

打开指定页面

使用 selenium 定位页面元素的前提是你已经了解基本的页面布局及各种标签含义,当然如果之前没有接触过,现在我也可以带你简单的了解一下。 以我们熟知的 CSDN 为例,我们进入首页,按 【F12】 进入开发者工具。红框中显示的就是页面的代码,我们要做的就是从代码中定位获取我们需要的元素。

想要定位并获取页面中的信息,首先要使用 webdriver 打开指定页面,再去定位。

from selenium import webdriver

# Chrome浏览器

driver = webdriver.Chrome()

driver.get('https://www.csdn.net/')

执行上面语句后会发现,浏览器打开 CSDN 主页后会马上关闭,想要防止浏览器自动关闭,可以添加下面代码。

# 不自动关闭浏览器

option = webdriver.ChromeOptions()

option.add_experimental_option("detach", True)

# 将option作为参数添加到Chrome中

driver = webdriver.Chrome(chrome_options=option)

这样将上面的代码组合再打开浏览器就不会自动关闭了。

from selenium import webdriver

# 不自动关闭浏览器

option = webdriver.ChromeOptions()

option.add_experimental_option("detach", True)

# 注意此处添加了chrome_options参数

driver = webdriver.Chrome(chrome_options=option)

driver.get('https://www.csdn.net/')

下面我们再来看看几种常见的页面元素定位方式。

id 定位

标签的 id 具有唯一性,就像人的身份证,假设有个 input 标签如下。

我们可以通过 id 定位到它,由于 id 的唯一性,我们可以不用管其他的标签的内容。

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

name 定位

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

我们可以使用 find_element_by_name 定位到 meta 标签。

driver.find_element_by_name("keywords")

class 定位

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

我们可以使用 find_element_by_class_name 定位到 div 标签。

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

tag 定位

每个 tag 往往用来定义一类功能,所以通过 tag 来识别某个元素的成功率很低,每个页面一般都用很多相同的 tag ,比如:\、\ 等。这里还是用上面的 div 作为例子。

我们可以使用 find_element_by_class_name 定位到 div 标签。

driver.find_element_by_tag_name("div")

xpath 定位

xpath 是一种在 XML 文档中定位元素的语言,它拥有多种定位方式,下面通过实例我们看一下它的几种使用方式。

...

...

发表评论

  • 39人参与,1条评论
  • 雷初晴雷初晴
    2024-02-06 15:16:10回复
  • 作为测试工程师,掌握Python自动化测试是提升职业竞争力的关键之一。通过深入学习Selenium库,从基础操作到实战应用,可以实现对Web应用的全面自动化测试。从安装配置Chrome/Firefox驱动、编写脚本模拟用户交互、定位元素进行页面操作,到整合unittest等框架执行测试用例、利用Page Object模式优化代码结构,再到结合CI/CD工具实现实时回归测试与持续集成,全方位提升工作效率和项目质量保障能力。
取消
扫码支持 支付码
返回顶部暗黑模式