Web自动化测试2(Selenium选择元素)


一、选择元素的基本方法

我们再总结一下, selenium自动化流程如下:
1.自动化程序调用Selenium客户端库函数(比如点击按钮元素)
2.客户端库会发送Selenium命令给浏览器的驱动程序
3.浏览器驱动程序接收到命令后,驱动浏览器去执行命令
4.浏览器执行命令
5.浏览器驱动程序获取命令执行的结果,返回给我们自动化程序
6.自动化程序对返回结果进行处理

对应web自动化来说, 就是要告诉浏览器,你要操作的界面元素是什么。
那么,怎么告诉浏览器呢?

方法就是:告诉浏览器,你要操作的这个 web 元素的 特征 。
就是告诉浏览器,这个元素它有什么与众不同的地方,可以让浏览器一下子找到它。
元素的特征怎么查看?
可以使用浏览器的 开发者工具栏 帮我们查看、选择 web 元素。
请大家用chrome浏览器访问百度,按F12后,点击下图箭头处的Elements标签,即可查看页面对应的HTML 元素
然后,再点击 最左边的图标,如下所示
在这里插入图片描述
之后,鼠标在界面上点击哪个元素,就可以查看 该元素对应的html标签 了。
比如,前面的图的高亮处,就是百度搜索输入框 对应的 input元素。

1、根据id选择元素

大家仔细看上面的 input元素 内容,会发现它有一个属性叫id。
在这里插入图片描述

我们可以把 id 想象成元素的编号, 是用来在html中标记该元素的。 根据规范, 如果元素有id属性 ,这个id 必须是当前html中唯一的。
所以如果元素有id, 根据id选择元素是最简单高效的方式。
这里,百度搜索框 元素的 id值为" kw"

下面的代码,可以自动化在浏览器中访问百度,并且在输入框中搜索如软件测试

大家可以运行一下看看。

from selenium import webdriver
#创建 WebDriver 对象,指明使用chrome浏览器驱动
driver = webdriver.Chrome()
#调用WebDriver 对象的get方法 可以让浏览器打开指定网址
driver.get('https://www.baidu.com')
#根据id选择元素,返回的就是该元素对应的WebElement对象
ele = driver.find_element_by_id('kw')
 #通过该 WebElement对象,就可以对页面元素进行操作了比如输入字符串到这个 输入框里
ele.send_keys('软件测试')

其中

driver = webdriver.Chrome()
前面讲过,driver 赋值的是 WebDriver 类型的对象,我们可以通过这个对象来操控浏览器,比如 打开网址、选择界面元素等。

下面的代码

driver.find_element_by_id('kw')

使用了 WebDriver 对象 的方法 find_element_by_id,

这行代码运行是,就会发起一个请求通过 浏览器驱动 转发给浏览器,告诉它,需要选择一个id为 kw 的元素。

浏览器,找到id为kw的元素后,将结果通过 浏览器驱动 返回给 自动化程序, 所以 find_element_by_id 方法会 返回一个 WebElement 类型的对象。

这个WebElement 对象可以看成是对应 页面元素 的遥控器。
我们通过这个WebElement对象,就可以 操控 对应的界面元素。

比如 :
调用这个对象的 send_keys 方法就可以在对应的元素中输入字符串,调用这个对象的 click 方法就可以 点击 该元素。

ele=driver.find_element_by_id("kw")
#点击
ele.click()

2、根据class属性、tag名选择元素

web自动化的难点和重点之一,就是如何选择我们想要操作的web页面元素。
除了根据元素的id,我们还可以根据元素的class属性选择元素。
就像一个 学生张三 可以定义类型为 中国人 或者 学生一样, 中国人 和 学生 都是 张三 的 类型。
元素也有类型, class 属性就用来标志着元素类型 ,可打开如下网址:
http://cdn1.python3.vip/files/selenium/sample1.html
对应的html内容 有如下的部分:

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值