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. 你可以去邀请别人给你点赞
相关文章
|
3月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
161 5
|
17天前
|
Web App开发 数据采集 JavaScript
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
本文介绍了Selenium、Chrome DevTools及Chrome DevTools Protocol (CDP) 的基本功能与应用。Selenium是一款开源自动化测试工具,适用于网页端应用程序测试和数据采集,具备跨平台特性。Chrome DevTools内置浏览器中,提供调试、分析Web应用程序的功能,包括元素、控制台、源代码和网络选项卡等。CDP是一套用于与Chromium内核浏览器通信的API,支持自动化测试和性能分析。文中还展示了Selenium与CDP结合使用的示例,如捕获网络请求数据和打印网页内容,并推荐了相关书籍和资源以供深入学习。
130 39
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
|
26天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
76 19
Selenium IDE:Web自动化测试的得力助手
|
28天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
158 17
Selenium:强大的 Web 自动化测试工具
|
3月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
618 5
|
2月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
54 0
|
3月前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
65 0
|
3月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
3月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
3月前
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。

热门文章

最新文章