本章节主要介绍八大元素定位和下拉列表的定位,这里我就不介绍环境的安装了,我们直接开始
一、八大元素定位
1、id
2、name
3、class name
4、tagname
5、link text
6、partial link text
7、xpath
8、css selector
这里简单的总结一下
id、name、class name 、tagname 这个四个根据元素标签和元素数据进行定位
link text、partial link text 这两个根据链接文本进行定位(a标签)
xpath:元素路径的定位
css:css选择器定位(样式定位)
下面我结合代码,进行讲解
我先讲解一下如何再网页中查看元素
1、首先我们打开一个网站,以百度为例
2、选择需要定位元素,鼠标右击,再点击检查
[attach]141798[/attach]
这就这个元素的属性。然后根据他的id值或者classname值进行定位。
还有一种方法就是,按F12 进入,然后如下图进行操作
[attach]141799[/attach]
1.环境的安装和注意点
注意点。1、谷歌的版本必须和驱动的版本一致,否则运行就会报错。
谷歌的驱动链接地址我放这里了谷歌驱动下载
有些小伙伴下载驱动的时候,发现只有window32的,没有64的,就不知道盖下载哪一个了。其实直接下载32的就行了,下载好后,放在python安装目录下
如何查看谷歌当前版本,如图
[attach]141800[/attach]
[attach]141801[/attach]
2、建议关闭谷歌自动更。关闭方式可以看这篇博客,
https://blog.csdn.net/weixin_48502426/article/details/122955721
前提有id属性
from selenium import webdriver
# 使用谷歌浏览器,当然也可FireFox和Safari
driver=webdriver.Chrome()
# 打开百度浏览器
driver.get('httpswww.baidu.com:')
# 定位到百度搜索栏,并输入python
driver.find_element_by_id('kw').send_keys('python')
# 关闭浏览器,运行
driver.close()
如何想看运行效果可以注释,关闭浏览器,这里教大家一个py注释一行的快捷键Ctrl + / 。因为运行块,肉眼难以察觉到。下节我将三种等待时间,小伙伴们可以加入试试效果的。
执行后的效果如图
[attach]141803[/attach]
前提有name属性
from selenium import webdriver
# 使用谷歌浏览器,当然也可FireFox和Safari
driver=webdriver.Chrome()
# 打开百度浏览器
driver.get('https:www.baidu.com')
# 定位到百度搜索栏,并输入python
driver.find_element_by_name('wd').send_keys('python')
# 关闭浏览器,运行
driver.close()
执行结果
[attach]141811[/attach]
前提有class属性
from selenium import webdriver
# 使用谷歌浏览器,当然也可FireFox和Safari
driver=webdriver.Chrome()
# 打开百度浏览器
driver.get('https:www.baidu.com')
# 定位到百度搜索栏,并输入python
driver.find_element_by_class_name('s_ipt').send_keys('python')
# 关闭浏览器,运行
driver.close()
[attach]141812[/attach]
tagname元素定位
tagname 通过input标签来定位,一般不使用,因为效率毕竟低
定位方式和前三个类似,因为没有找到较好的列子,我这里就不用代码演示了。方式就是find_element_by_tag_name()
link text元素定位
link text 是通过a标签进行定位的
如图中的红框
[attach]141821[/attach]
from selenium import webdriver
# 使用谷歌浏览器,当然也可FireFox和Safari
driver=webdriver.Chrome()
# 打开百度浏览器
driver.get('https:www.baidu.com')
# 定位到hao123 并进行点击
driver.find_element_by_link_text('hao123').click()
# 关闭浏览器,运行
# driver.close()
[attach]141824[/attach]
partial_link_text元素定位partial_link_text也是通过a标签进行一个模糊的匹配
from selenium import webdriver
# 使用谷歌浏览器,当然也可FireFox和Safari
driver=webdriver.Chrome()
# 打开百度浏览器
driver.get('https:news.baidu.com')
# 定位到小米粥链接并进行点击
driver.find_element_by_partial_link_text('小米粥').click()
# 关闭浏览器,运行
# driver.close()
[attach]141825[/attach]
3、层级定位
找的元素没有唯一值,但父级是唯一值
//*[@id=‘p1’]/input
4、属性与逻辑重合
解决元素之间相同属性重名问题
//*[@id=‘telA’ and @class=‘telA’]
CSS定位
css定位方式比xpath速度更快,建议平常使用css定位方式,之前一个面试官就有问道我,八大元素中你一般用什么方式定位,为什么。
定位方式
1、id选择器
2、class选择器
3、元素选择器
4、属性选择器
5、层级选择器
id选择器 格式:#id属性值
class选择器 格式:.class属性值
元素选择器 格式:input(选择所有input元素)
属性选择器 格式:如[name=‘name’]不推荐在属性中用id或者class
层级选择器 格式:element>element 如:p>input(返还所有p元素下所有的input元素) 其中 > 可以用空格替代
from selenium import webdriver
# 使用谷歌浏览器,当然也可FireFox和Safari
driver=webdriver.Chrome()
# 打开百度浏览器
driver.get('https:www.baidu.com')
# 定位到编辑框并输入python
# 通过id定位
driver.find_element_by_css_selector('#kw').send_keys('python')
# 通过class定位
driver.find_element_by_css_selector('.s_ipt').send_keys('python')
# 通过属性定位
driver.find_element_by_css_selector('name="wd"').send_keys('python')
# 关闭浏览器,运行
# driver.close()
2、ul+li 定位方式
这个文章主要讲解了八个定位元素和元素组定位的介绍。中间也有一点知识点的补充,下篇文章我会介绍自动化中的三种时间等待,强制等待,隐性等待和强制等待。在下拉框定位中我就使用到了强制等待,大家可以执行一下程序看一下效果。欢迎各位留言、点赞。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |