Selenium 2 - 选择元素的方法

本文来自 白月黑羽教Python


点击这里,边看视频讲解,边学习以下内容


对于百度搜索页面,如果我们想自动化输入 白月黑羽 ,怎么做呢?

这就是在网页中,操控界面元素。

web界面自动化,要操控元素,首先需要 选择界面元素 ,或者说 定位界面元素

就是 先告诉浏览器,你要操作 哪个界面元素, 让它找到你要操作的界面元素。

我们必须要让浏览器 先找到元素,然后,才能操作元素


选择元素的方法

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

那么,怎么告诉浏览器 呢?

方法就是:告诉浏览器,你要操作的这个 web 元素的 特征

就是告诉浏览器,这个元素它有什么与众不同的地方,可以让浏览器一下子找到它。

元素的特征怎么查看?

可以使用浏览器的 开发者工具栏帮我们查看、选择 web 元素。

请大家用chrome浏览器访问百度,按F12后,点击下图箭头处的Elements标签,即可查看页面对应的HTML 元素

白月黑羽Python3教程


然后,再点击 最左边的图标,如下所示

白月黑羽Python3教程

之后,鼠标在界面上点击哪个元素,就可以查看 该元素对应的html标签 了。

比如,前面的图的高亮处,就是百度搜索输入框 对应的 input元素。


根据 元素的id 属性选择元素


点击这里,边看视频讲解,边学习以下内容


大家仔细看上面的 input元素 内容,会发现它有一个属性叫id。

白月黑羽Python3教程

我们可以把 id 想象成元素的编号, 是用来在html中标记该元素的。 根据规范, 如果元素有id属性 ,这个id 必须是当前html中唯一的。

所以如果元素有id, 根据id选择元素是最简单高效的方式。

这里,百度搜索框 元素的 id值为 kw

下面的代码,可以自动化在浏览器中 访问百度,并且在输入框中搜索 白月黑羽

大家可以运行一下看看。

from selenium import webdriver

# 创建 WebDriver 对象,指明使用chrome浏览器驱动
wd = webdriver.Chrome(r'd:\webdrivers\chromedriver.exe')

# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
wd.get('https://www.baidu.com')

# 根据id选择元素,返回的就是该元素对应的WebElement对象
element = wd.find_element_by_id('kw')

# 通过该 WebElement对象,就可以对页面元素进行操作了
# 比如输入字符串到 这个 输入框里
element.send_keys('白月黑羽\n')

其中

wd = webdriver.Chrome(r'd:\webdrivers\chromedriver.exe')

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

下面的代码

wd.find_element_by_id('kw')

使用了 WebDriver 对象 的方法 find_element_by_id,

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

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

这个WebElement 对象可以看成是对应 页面元素 的遥控器。

我们通过这个WebElement对象,就可以 操控对应的界面元素。

比如 :

调用这个对象的 send_keys 方法就可以在对应的元素中 输入字符串,

调用这个对象的 click 方法就可以 点击 该元素。


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

根据 class属性 选择元素


点击这里,边看视频讲解,边学习以下内容


web自动化的难点和重点之一,就是如何 选择我们想要操作的web页面元素。

除了根据元素的id ,我们还可以根据元素的 class属性选择元素。

就像一个 学生张三 可以定义类型为 中国人 或者 学生一样, 中国人 和 学生 都是 张三 的 类型。

元素也有类型, class 属性就用来标志着元素 类型

请大家 点击打开这个网址

这个网址对应的html内容 有如下的部分

    <body>
        
        
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值