其他分享
首页 > 其他分享> > 111

111

作者:互联网

元素定位

目标

1. 了解元素各种定位方法
2. 掌握id、name、class_name、tag_name、link_text、partial_link_text定位的使用

1. 为什么要学习元素定位方式?

1. 让程序操作指定元素,就必须先找到此元素;
2. 程序不像人类用眼睛直接定位到元素;
3. WebDriver提供了八种定位元素方式

2. WebDriver 元素定位方式

1. id
2. name
3. class_name
4. tag_name
5. link_text
6. partial_link_text

定位方式分类-汇总:

1). id、name、class_name:为元素属性定位
2). tag_name:为元素标签名称
3). link_text、partial_link_text:为超链接定位(a标签)
4). Xpath:为元素路径定位
5). Css:为CSS选择器定位

案例-1 注册页面

1. 为了更好的学习这八种方式和网络的关系,我们在案例-1注册页面上来练习自动化脚本设计,提高学习效率和
   脚本执行速率
2. 语言使用Python
3. 开发工具使用Pycharm
4. selenium使用2.48.0

2.1 id定位

实现案例-1需求:
    1). 打开注册A.html页面,使用id定位,自动填写(账号A:admin、密码A:123456)
    2). 填写完毕后,3秒钟关闭浏览器窗口

实现方法:

find_element_by_if()

实现

from selenium import webdriver
from time import sleep
driver=webdriver.Firefox()
url='E:\\测试\\课件\\Web自动化\\Web自动化课件\\02img\\注册A.html'
driver.get(url)
user=driver.find_element_by_id("userA")
user.send_keys("admin")
pwd=driver.find_element_by_id("passwordA")
pwd.send_keys("123456")
sleep(3)
driver.quit()

2.2 name属性定位

实现案例-1需求: 1). 打开注册A.html页面,使用id定位,自动填写(账号A:admin、密码A:123456) 2). 填写完毕后,3秒钟关闭浏览器窗口

实现方法

find_element_by_name

2.3 class_name 定位

实现案例-1需求:
    通过class_name定位电话号码A,并发送18611111111

实现方法

find_element_by_class_name()

2.4 tag_name 定位

实现案例-1需求:
    1). 打开注册A.html页面,使用tag_name定位,自动填写(账号A:admin)
    2). 填写完毕后,3秒钟关闭浏览器窗口

实现方法

find_element_by_tag_name() 返回:符合条件的第一个标签

2.5 link_text定位

说明: 专门定位超链接文本(标签), 全部匹配

实现案例-1需求:
    1). 打开注册A.html页面,使用link_text定位(访问 新浪 网站)超链接
    2). 3秒钟关闭浏览器窗口

实现方法

find_element_by_link_text()

2.6 partial_link_text

说明: partial_link_text定位是对link_text定位的补充,partial_like_text为模糊匹配;

实现案例-1需求:
    1). 打开注册A.html页面,使用partial_link_text定位(访问 新浪 网站)超链接
    2). 3秒钟关闭浏览器窗口

实现方法

find_element_by_partial_link_text()

3. 获取元素列表

获取元素列表

作用:
    1). 查找定位所有符合条件的元素
    2). 返回的定位元素格式为数组(列表)格式;
说明:
    1). 列表数据格式的读取需要指定下标(下标从0开始)

使用说明

和获取单个元素find_element_by_xxx 的使用方法一样. 例如:

说明:使用tag_name获取第二个元素(密码框)

代码:
    ...
    driver.find_elements_by_tag_name("input")[1].send_keys("123456")
    ...

思考?

1. 在实际项目中标签没有id、name、class属性改如何定位?
2. id、name、class属性值为动态获取,随着刷新或加载而变化,改如何定位

标签:定位,name,text,id,link,111,find
来源: https://www.cnblogs.com/kxtomato/p/16403745.html