selenium自动化测试(—):初学+元素定位

简介: selenium自动化测试(—):初学+元素定位

文章目录

一、模块安装

二、驱动器安装配置

三、打开网页

案例一

案例二

四、元素定位

4.1 id定位

案例一

4.2 class定位

案例一

案例二

4.3 txt文本定位

案例一

案例二

4.4 标签定位

案例一

4.5 name定位

4.6 xpath定位

5、具体定位方法

五、小总结

六、福利


一、模块安装

创建一个新的项目:

1.png

新窗口:

image.png

模块安装:

pip install selenium

如下则安装成功:

image.png

二、驱动器安装配置

进入如下链接查看chrome版本:

chrome://version/

比如我的为:

image.png

可以看到我的版本为哦:

92.0.4515.131

现在进入如下链接:

http://npm.taobao.org/mirrors/chromedriver

进去之后看到只有这两个比较符合:

image.png

点击其中一个就行,进去之后点击win32:

image.png

点击后就会下载,解压得到exe,复制改路径加入到环境变量:

image.png

image.png

三、打开网页

案例一

我们以CSDN为例,后面也如此:

# coding=gbk
"""
作者:川川
@时间  : 2021/10/5 22:45
群:970353786
"""
from selenium import webdriver#导入模块
browser=webdriver.Chrome()#初始化
browser.get('https://www.csdn.net/?spm=1001.2014.3001.4476')#get请求C站

效果如下:

image.png

注意:如果你运行失败,请在初始化里面添加chromedriver路径,例子如下:

browser=webdriver.Chrome(executable_path=r'D:\360安全浏览器下载\chromedriver.exe')#初始化

案例二

我们再以打开淘宝为例:

https://www.taobao.com/

代码为:

# coding=gbk
"""
作者:川川
@时间  : 2021/10/6 16:04
群:970353786
"""
from selenium import webdriver#导入模块
browser=webdriver.Chrome()#初始化
browser.get('https://www.taobao.com')#get请求淘宝网页

运行效果:

image.png

四、元素定位

这8种定位方式在Python selenium中所对应的方法为:

  • find_element_by_id()
  • find_element_by_name()
  • find_element_by_class_name()
  • find_element_by_tag_name()
  • find_element_by_link_text()
  • find_element_by_partial_link_text()
  • find_element_by_xpath()
  • find_element_by_css_selector()


4.1 id定位

使用 WebDriver 时要学习的最基本的技术之一是如何查找页面上的元素。 WebDriver 提供了许多内置的选择器类型,其中包括根据 id 属性查找元素。

语法:

driver.find_element(By.ID, "cheese")

案例一

以淘宝为例:

https://www.taobao.com/

分析:

image.png

则代码为:

# coding=gbk
"""
作者:川川
@时间  : 2021/10/6 15:46
群:970353786
"""
from selenium import webdriver#导入模块
browser=webdriver.Chrome()#初始化
browser.get('https://www.taobao.com')#get请求淘宝网页
id=browser.find_elements_by_id('q')
print(id)

运行效果:

image.png

4.2 class定位

定位class属性与搜索值匹配的元素(不允许使用复合类名)

案例一

以CSDN主页为例。

分析:

image.png

则代码为:

from selenium import webdriver#导入模块
browser=webdriver.Chrome()#初始化
browser.get('https://www.csdn.net/?spm=1001.2014.3001.4476')#get请求C站
top=browser.find_element_by_class_name('el-popover__reference')  #class定位

运行效果:

1.png

案例二

再或者是我自己的主页:

image.png

则代码为:运行效果如下:

# coding=gbk
"""
作者:川川
@时间  : 2021/10/6 15:37
群:970353786
"""
from selenium import webdriver#导入模块
browser=webdriver.Chrome()#初始化
browser.get('https://blog.csdn.net/weixin_46211269?spm=1000.2115.3001.5343')#get请求C站
zuo=browser.find_element_by_class_name('user-profile-statistics-num')

运行效果如下:

1.png

4.3 txt文本定位

定位link text可视文本与搜索值完全匹配的锚元素

案例一

以淘宝为例:

image.png

则代码为:

# coding=gbk
"""
作者:川川
@时间  : 2021/10/6 15:55
群:970353786
"""
from selenium import webdriver#导入模块
browser=webdriver.Chrome()#初始化
browser.get('https://www.taobao.com')#get请求淘宝网页
href=browser.find_element_by_link_text('男装')#文本获取链接
print(href)

运行效果:

1.png

案例二

再或者定位零食

image.png

同样定位成功,可以常识打印为txt看看

from selenium import webdriver#导入模块
browser=webdriver.Chrome()#初始化
browser.get('https://www.taobao.com')#get请求淘宝网页
ling=browser.find_element_by_link_text('零食')
print(ling.text)

运行效果:

1.png

4.4 标签定位

tag name 定位标签名称与搜索值匹配的元素

案例一

分析:

image.png

则代码为:

from selenium import webdriver#导入模块
browser=webdriver.Chrome()#初始化
browser.get('https://www.taobao.com')#get请求淘宝网页
biao=browser.find_element_by_tag_name('input')
print(biao)

运行效果:

image.png

4.5 name定位

分析:

image.png

则代码为:

from selenium import webdriver#导入模块
browser=webdriver.Chrome()#初始化
browser.get('https://www.taobao.com')#get请求淘宝网页
n=browser.find_element_by_name('q')
print(n)

运行效果:

image.png

4.6 xpath定位

xpath工具也可以推荐大家使用:xpath helper

怎么用xpath定位呢?哎,我实在懒得找例子了,下面我构造一个例子吧。

5、具体定位方法

假如我们有一个Web页面,通过前端工具(如,Firebug)查看到一个元素的属性是这样的。

<html>
  <head>
  <body link="#0000cc">
    <a id="result_logo" href="/" onmousedown="return c({'fm':'tab','tab':'logo'})">
    <form id="form" class="fm" name="f" action="/s">
      <span class="soutu-btn"></span>
        <input id="kw" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="

我们的目的是要定位input标签的输入框(以下方法都可以):

1.通过id定位

dr.find_element_by_id("kw")

2.通过name定位

dr.find_element_by_name("wd")

3.通过class name定位

dr.find_element_by_class_name("s_ipt")

4.通过tag name定位

dr.find_element_by_tag_name("input")

五、小总结

本篇内容为selenium的开始到元素定位,后续会继续更新selenium新的内容。

六、福利

顺便为反馈大家对我的支持,顺此文送三本关于自然语言处理的书,对玩高阶python的粉丝会有很大的帮助。

这是一个北大高材生写的,把人工智能自然语言处理写得很通俗。

1.jpg

仅送出三本,参与方式:

  1. 在本文章评论区对本文评论
  2. 你的评论被别人点赞数量最高的前三位获奖
  3. 你可以去邀请别人给你点赞
相关文章
|
13天前
|
Web App开发 JavaScript Java
自动化测试的利剑:Selenium WebDriver入门与实践
【9月更文挑战第21天】在软件开发的海洋中,自动化测试犹如一艘船,帮助开发者们快速航行至质量保证的彼岸。本文将作为你的罗盘,指引你了解和掌握Selenium WebDriver这一强大的自动化测试工具。通过深入浅出的方式,我们将探索Selenium WebDriver的基本概念、安装过程以及编写简单测试脚本的方法。无论你是刚接触自动化测试的新手,还是希望提升测试技能的开发者,这篇文章都将为你提供有价值的指导。
|
13天前
|
Web App开发 测试技术 持续交付
自动化测试的利器:Selenium与Python的完美结合
【9月更文挑战第21天】在软件开发的世界里,测试是确保产品质量的关键步骤。随着敏捷开发和持续集成的流行,自动化测试工具变得尤为重要。本文将介绍如何使用Selenium和Python进行高效的自动化测试,不仅提供代码示例,还深入探讨如何设计测试用例、选择正确的测试框架、以及如何整合到CI/CD流程中。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。
25 3
|
20天前
|
敏捷开发 Java 测试技术
探索自动化测试的奥秘:从Selenium到Appium
【9月更文挑战第14天】软件测试,这个看似枯燥乏味却至关重要的领域,正经历着一场革命。随着技术的进步,自动化测试工具如Selenium和Appium已成为质量保证的利器。本文将带你一探这些工具的神秘面纱,了解它们如何简化测试流程、提升效率,并确保软件产品的质量。准备好,我们将深入自动化测试的世界,解锁其背后的原理和实践技巧。
|
10天前
|
Web App开发 Linux Python
linux上安装selenium环境及测试
该文章提供了在Linux CentOS上安装Selenium环境、Chrome浏览器及Chromedriver的详细步骤,并演示了如何以无头模式进行测试。
27 0
|
21天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:如何用Selenium和Python打造高效测试脚本
【9月更文挑战第13天】在软件开发的海洋中,自动化测试是那抹不可或缺的亮色。它不仅提升了测试效率,还保障了产品质量。本文将带你领略使用Selenium和Python构建自动化测试脚本的魅力所在,从环境的搭建到脚本的编写,再到问题的排查,每一步都是对软件质量把控的深刻理解和实践。让我们开始这段探索之旅,解锁自动化测试的秘密吧!
15 0
|
22天前
|
JavaScript 前端开发 测试技术
Selenium2Library实现基于GUI的测试
Selenium2Library实现基于GUI的测试
28 0
|
23天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
106 7
Jmeter实现WebSocket协议的接口测试方法
|
23天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
101 3
快速上手|HTTP 接口功能自动化测试
|
23天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
31 5
|
2月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
下一篇
无影云桌面