0
点赞
收藏
分享

微信扫一扫

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


文章目录

  • ​​一、模块安装​​
  • ​​二、驱动器安装配置​​
  • ​​三、打开网页​​
  • ​​案例一​​
  • ​​案例二​​
  • ​​四、元素定位​​
  • ​​4.1 id定位​​
  • ​​案例一​​
  • ​​4.2 class定位​​
  • ​​案例一​​
  • ​​案例二​​
  • ​​4.3 txt文本定位​​
  • ​​案例一​​
  • ​​案例二​​
  • ​​4.4 标签定位​​
  • ​​案例一​​
  • ​​4.5 name定位​​
  • ​​4.6 xpath定位​​
  • ​​5、具体定位方法​​
  • ​​五、小总结​​
  • ​​六、福利​​

一、模块安装

创建一个新的项目:

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


新窗口:

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


模块安装:

pip install selenium

如下则安装成功:

selenium自动化测试(—):初学+单个元素定位_爬虫_03

二、驱动器安装配置

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

chrome://version/

比如我的为:

selenium自动化测试(—):初学+单个元素定位_初始化_04

可以看到我的版本为哦:

99.0.4844.51

现在进入如下链接:

https://chromedriver.chromium.org/downloads

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

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

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

selenium自动化测试(—):初学+单个元素定位_爬虫_06

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

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


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

三、打开网页

案例一

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

# coding=gbk
"""
作者:川川
@时间 : 2021/10/5 22:45
群:970353786
"""
from selenium import webdriver#导入模块https:求C站

效果如下:


注意:如果你运行失败,请在初始化里面添加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请求淘宝网页

运行效果:

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

四、元素定位

这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/

分析:

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


则代码为:

# 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)

运行效果:

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

4.2 class定位

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

案例一

以CSDN主页为例。

分析:

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

则代码为:

from selenium import webdriver#导入模块
browser=webdriver.Chrome()#初始化
browser.get('htt014.3001.4476')#get请求C站

top=browser.find_element_by_class_name('el-popover__reference') #class定位

运行效果:

selenium自动化测试(—):初学+单个元素定位_初始化_13

案例二

再或者是我自己的主页:

selenium自动化测试(—):初学+单个元素定位_初始化_14


则代码为:

# coding=gbk
"""
作者:川川
@时间 : 2021/10/6 15:37
群:970353786
"""
from selenium import webdriver#导入模块
browser=webdriver.Chrome()#初始化
browser.get('http9?spm=1000.2115.3001.5343')#get请求C站

zuo=browser.find_element_by_class_name('user-profile-statistics-num')

运行效果如下:

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

4.3 txt文本定位

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

案例一

以淘宝为例:

selenium自动化测试(—):初学+单个元素定位_爬虫_16


则代码为:

# 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)

运行效果:

selenium自动化测试(—):初学+单个元素定位_爬虫_17

案例二

再或者定位零食

selenium自动化测试(—):初学+单个元素定位_初始化_18


同样定位成功,可以常识打印为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)

运行效果:

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

4.4 标签定位

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

案例一

分析:

selenium自动化测试(—):初学+单个元素定位_初始化_20


则代码为:

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

biao=browser.find_element_by_tag_name('input')
print(biao)

运行效果:

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

4.5 name定位

分析:

selenium自动化测试(—):初学+单个元素定位_爬虫_22

则代码为:

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

n=browser.find_element_by_name('q')
print(n)

运行效果:

selenium自动化测试(—):初学+单个元素定位_爬虫_23

4.6 xpath定位

xpath语法,我推荐几篇文章,我就不在这里写了:
​十五分钟掌握python爬虫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新的内容。

举报

相关推荐

0 条评论