python自动化测试(二):获取元素定位的基本方式

目录

一、前置代码

二、通过HTML元素ID的方式去进行元素定位

三、通过HTML元素的name属性进行元素定位

四、练习一:打开百度登录界面并输入数据后登录

五、通过HTML元素的类名来进行元素定位

六、通过链接的文本值方式进行元素定位

七、通过部分的链接文本值进行元素定位

八、通过标签名的方式进行元素定位

一、前置代码
# coding=utf-8
from selenium import webdriver
import time
driver = webdriver.Chrome()
url = "https://www.baidu.com"
driver.get(url)
# 最大化浏览器窗口
driver.maximize_window()
# 添加全局的等待时间
driver.implicitly_wait(10)

这里打开百度首页

二、通过HTML元素ID的方式去进行元素定位

语法介绍:

通过ID方式进行元素定位
find_element_by_id("id值")

对id值进行事件操作

表单输入内容:send_keys("字符串")

.send_keys("文本") 是将指定的文本输入到找到的元素中。

send_keys 是Selenium提供的方法,用于模拟键盘输入操作。

在这个方法中,可以传递一个字符串参数,表示要输入的文本。

点击事件:click()

操作代码

# 一.通过ID方式进行元素定位
# 在百度首页输入框中输入软件测试
driver.find_element_by_id("kw").send_keys("软件测试")
# 点击“百度一下”按钮
driver.find_element_by_id("su").click()

跑一下没问题就把代码注释掉,进行下一个操作

三、通过HTML元素的name属性进行元素定位

介绍:

通过name方式进行元素定位
语法:find_element_by_name("name值")

同样,这里打开百度首页,然后去输入一个“人工智能”

# 在百度首页输入框中输入人工智能
driver.find_element_by_name("wd").send_keys("人工智能")

跑起来没问题,拓展一下需求:

四、练习一:打开百度登录界面并输入数据后登录

此时,点击百度首页的右上角登录按钮,弹出

结合上述内容,编写一个需求:打开首页 --> 点击右上角登录按钮 --> 输入 账号、密码 --> 勾选协议 --> 点击登录

# #在百度首页点击右上角的登录按钮
driver.find_element_by_id("s-top-loginbtn").click()
# #输入百度账号
driver.find_element_by_name("userName").send_keys("zhangsan")
# #输入密码
driver.find_element_by_id("TANGRAM__PSP_11__password").send_keys("12345678")
# #点击登录按钮
driver.find_element_by_name("isAgree").click()
driver.find_element_by_id("TANGRAM__PSP_11__submit").click()
time.sleep(5)

五、通过HTML元素的类名来进行元素定位

介绍:

通过class方式进行元素定位
语法:find_element_by_class_name("class_name值")

这里通过华为商场的登录来进行演示

# 三.通过class_name方式进行元素定位
url = "https://id1.cloud.huawei.com/CAS/portal/loginAuth.html"  # 华为登录页面
driver.get(url)

# 点击div
driver.find_element_by_class_name("hwid-input-div").click()
driver.find_element_by_class_name("userAccount").send_keys("admin")
time.sleep(1)
# 输入密码
driver.find_element_by_class_name("hwid-input-div").click()
driver.find_element_by_class_name(
    "hwid-input-pwd").send_keys("1234567a")
time.sleep(1)

# 点击登录按钮
driver.find_element_by_class_name("button-base-box").click()

1、url重新设置了地址并get打开

2、通过类名去输入表单数据,但是要先点击div盒子进入输入框

在这里遇到个问题,使用多类名的话,就会提示找不到元素的报错,在进行元素检查的时候

直接复制粘贴了两个类名,就报错找不到了,这里可以注意一下

六、通过链接的文本值方式进行元素定位

介绍:

1、通过链接的全部的文本值进行元素定位(link_text)
find_element_by_link_text("全部的文本值")

2、获取页面句柄
handles=driver.window_handles

以列表的形式返回结果

3、切换句柄
driver.switch_to_window(handles[-1])

这里的句柄接收的变量可以打印输出,是一个以列表,然后是英文字符串的方法

可以在控制台进行打印,

(列表中两个值,也就是分别对应了两个页面的头)

这里跑一个例子:打开首页 --> 打开新闻页 --> 到最后一个句柄 --> 回到第一个 --> 再返回 --> 打开文字标题为‘xxx’的新闻

# 1、在百度首页,点击新闻链接
driver.find_element_by_link_text("新闻").click()
# 2、点击:杭州亚残运会运动员风采:每一箭的信心与信任
# 获取页面句柄(获取所有窗口的句柄)
handles = driver.window_handles
print(f'当前页面的句柄:{handles}')

# 3、切换句柄
driver.switch_to_window(handles[-1])
time.sleep(1)
driver.switch_to_window(handles[0])
time.sleep(1)
driver.switch_to_window(handles[-1])

# 4、选中新闻文本,点击
driver.find_element_by_link_text('杭州亚残运会运动员风采:每一箭的信心与信任').click()

七、通过部分的链接文本值进行元素定位

通过部分的链接文本值进行元素定位
语法:find_element_by_partial_link_text("部分的链接文本值")

举个例子:首页打开新闻(在首页定位新字) --> 打开下面这个新闻 ,部分文字:杭州亚残运会

杭州亚残运会运动员风采:每一箭的信心与信任

# 1、点击百度首页新闻
driver.find_element_by_partial_link_text("新").click()
time.sleep(1)

# 2、获取句柄(这里要记得切换句柄)
handles = driver.window_handles
driver.switch_to_window(handles[-1])
time.sleep(1)

# 3、点击“杭州亚残运会运动员风采:每一箭的信心与信任 ”链接
driver.find_element_by_partial_link_text("杭州亚残运会").click()

八、通过标签名的方式进行元素定位

通过标签名的方式进行元素定位
语法:find_element_by_tag_name("标签名")

# 打印小米官网中,顶部nav导航栏
url = "https://www.mi.com/"
driver.get(url)
# 获取到导航栏的nav标签
ele = driver.find_element_by_tag_name("nav")
print(f'元素:{ele}')
print(f'包含的文本内容:{ele.text}')

猜你喜欢

转载自blog.csdn.net/qq_63141957/article/details/134046907
今日推荐