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. 你可以去邀请别人给你点赞
相关文章
|
1天前
|
存储 JavaScript Java
《手把手教你》系列技巧篇(四十七)-java+ selenium自动化测试-判断元素是否显示(详解教程)
【5月更文挑战第11天】WebDriver 的 `isDisplayed()` 方法用于检查页面元素是否可见,如果元素存在于DOM中且可视,返回`true`,否则返回`false`。在自动化测试中,这个方法常用于验证元素是否真正显示在页面上。示例代码展示了如何使用 `isDisplayed()` 判断百度登录页面的特定错误提示文字是否出现。
11 1
|
2天前
|
JavaScript Java 测试技术
《手把手教你》系列技巧篇(四十六)-java+ selenium自动化测试-web页面定位toast-下篇(详解教程)
【5月更文挑战第10天】本文介绍了使用Java和Selenium进行Web自动化测试的实践,以安居客网站为例。最后,提到了在浏览器开发者工具中调试和观察页面元素的方法。
12 2
|
3天前
|
敏捷开发 测试技术 持续交付
深入理解自动化测试框架:以Selenium为例
【5月更文挑战第16天】 随着软件行业的迅猛发展,质量保障变得愈加重要。自动化测试作为确保软件质量的重要环节,其效率和可靠性受到了广泛关注。本文旨在深入探讨自动化测试框架的构建与优化,特别是以Selenium框架为例,分析其在实际应用中的优势、常见问题以及解决方案。通过具体案例分析,揭示如何提高自动化测试的稳定性和灵活性,从而更好地服务于敏捷开发和持续集成流程。
19 5
|
3天前
|
Web App开发 JavaScript 测试技术
《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)
【5月更文挑战第9天】本文介绍了在Appium中处理App自动化测试中遇到的Toast元素定位的方法。Toast在Web UI测试中也常见,通常作为轻量级反馈短暂显示。文章提供了两种定位Toast元素的技巧.
11 0
|
4天前
|
数据采集 Web App开发 数据挖掘
利用Python和Selenium实现定时任务爬虫
利用Python和Selenium实现定时任务爬虫
|
4天前
|
JavaScript 前端开发 测试技术
Python Selenium基本用法
Python Selenium基本用法
38 2
|
4天前
|
Web App开发 数据采集 前端开发
基于Python的Selenium详解:从入门到实践
基于Python的Selenium详解:从入门到实践
124 0
|
2天前
|
机器学习/深度学习 Java 数据挖掘
selenium的配置与基本使用(1),2024年最新网易Python面试必问
selenium的配置与基本使用(1),2024年最新网易Python面试必问
|
2天前
|
Web App开发 Ubuntu Linux
Linux无图形界面环境使用Python+Selenium实践
【5月更文挑战第1天】Linux无图形界面环境使用Python+Selenium实践
21 2
|
4天前
|
前端开发 Java 测试技术
selenium+python自动化测试--登录
selenium+python自动化测试--登录
12 2