Selenium 基础教程——元素定位(上)

本文详细介绍了Selenium中的元素定位技巧,包括ID、class和name定位,以及通过谷歌浏览器开发者工具进行元素选择的方法。后续还将介绍tag、XPath、link和Partiallink定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

        最近一直在用Selenium,就想着把学到、用到的东西都整理出来,方便日后自己忘了容易找,也能供自动化测试的初学者学习,希望对大家能有所帮助。

元素定位

        以谷歌浏览器为例,首先按快捷键F12进入开发者工具,先点击左上角的小箭头,之后将鼠标放在我们想要定位的元素上,用灰色背景加深出来的部分即为对应元素的属性。

        其他浏览器与谷歌类似,IE浏览器、Edge浏览器、Firefox浏览器的开发者工具快捷键均为F12,Safari浏览器的网页检查器的快捷键为option+command+1。

id定位

        通过元素对应的ID属性值获取元素。语句如下:find_element(By.ID, 'id')

        以定位百度的搜索框为例,首先找到百度搜索框对应的属性,方法在上一节。可以看到搜索框对应的id为"kw"。

        此时,我们使用find_element(By.ID, 'id')进行定位,源码如下:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
option = webdriver.ChromeOptions()
option.add_experimental_option("detach", True)
driver = webdriver.Chrome(options = option)
driver.get("https://www.baidu.com/")
time.sleep(0.5)
driver.find_element(By.ID, 'kw')

        但运行之后发现,没有任何结果,那我们怎么验证正确性呢?这个时候我们可以运用断言assert,可以看到输入框有个属性是maxlength,属性值为255。

 

        如果我们定位元素的maxlength属性值与其相等,那就证明定位准确,源码如下:

kw_maxlength = driver.find_element(By.ID, 'kw').get_attribute('maxlength')
assert kw_maxlength=='255'
print('ID定位正确!')

        这里需要说明一下,如果断言正确的话,是不会返回任何结果的,所以加上一个print能直观的看到结果。

class定位

通过元素对应的class属性值获取元素。语句如下:

driver.find_element(By.CLASS_NAME,'class'),以定位百度一下按钮为例,可以看到按钮对应的class属性值为s_btn。

        此时,我们使用driver.find_element(By.CLASS_NAME,'class')进行定位,并用断言进行验证,源码如下:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
option = webdriver.ChromeOptions()
option.add_experimental_option("detach", True)
driver = webdriver.Chrome(options = option)
driver.get("https://www.baidu.com/")
time.sleep(0.5)

driver.find_element(By.CLASS_NAME, 's_btn')
btn_value = driver.find_element(By.CLASS_NAME, 's_btn').get_attribute('value')
assert btn_value == '百度一下'
print('Class定位正确')

name定位

        这种定位方式其实与上述两种定位方式类似,这里就不再细说了,还是以定位百度搜索框为例,直接上代码:

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
option = webdriver.ChromeOptions()
option.add_experimental_option("detach", True)
driver = webdriver.Chrome(options = option)
driver.get("https://www.baidu.com/")
time.sleep(0.5)

driver.find_element(By.NAME, 'wd')
wd_maxlength = driver.find_element(By.NAME, 'wd').get_attribute('maxlength')
assert wd_maxlength == '255'
print('NAME定位正确!')

下期预告

Selenium 基础教程——元素定位(中)

1.tag定位

2.xPath定位

3.link定位

4.Partial link定位

工作繁忙,整理时间有限,敬请谅解!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dreamer丶Devan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值