2、Selenium的八大元素定位方法
id定位
- 解释:通过html页面标签的id属性值来进行元素定位
- 函数:find_element_by_id('id值')
- 代码示例:代码第14行使用id定位到百度首页的搜索输入框
1 from selenium import webdriver 2 from time import sleep 3 4 # 获取浏览器驱动 5 driver = webdriver.Chrome() 6 7 # 访问百度首页 8 driver.get('https://www.baidu.com') 9 10 # 浏览器窗口最大化 11 driver.maximize_window() 12 13 # 定位百度网页上的搜索输入框 14 bd_input = driver.find_element_by_id('kw') 15 16 # 输入框中输入软件测试 17 bd_input.send_keys('软件测试') 18 19 # 等待5s 20 sleep(5) 21 22 # 退出浏览器 23 driver.quit()
name定位
- 解释:通过html页面标签的name属性值来进行元素定位
- 函数:find_element_by_name('name值')
- 代码示例:代码第14行使用id定位到百度首页的搜索输入框
1 from selenium import webdriver 2 from time import sleep 3 4 # 获取浏览器驱动 5 driver = webdriver.Chrome() 6 7 # 访问百度首页 8 driver.get('https://www.baidu.com') 9 10 # 浏览器窗口最大化 11 driver.maximize_window() 12 13 # 定位百度网页上的搜索输入框 14 bd_input = driver.find_element_by_name('wd') 15 16 # 输入框中输入软件测试 17 bd_input.send_keys('软件测试') 18 19 # 等待5s 20 sleep(5) 21 22 # 退出浏览器 23 driver.quit()
class定位
- 解释:通过html页面标签的class属性值来进行元素定位
- 函数:find_element_by_class_name('class值')
- 代码示例:代码第14行使用class_name定位到百度首页的搜索输入框
1 from selenium import webdriver 2 from time import sleep 3 4 # 获取浏览器驱动 5 driver = webdriver.Chrome() 6 7 # 访问百度首页 8 driver.get('https://www.baidu.com') 9 10 # 浏览器窗口最大化 11 driver.maximize_window() 12 13 # 定位百度网页上的搜索输入框 14 bd_input = driver.find_element_by_class_name('s_ipt') 15 16 # 输入框中输入软件测试 17 bd_input.send_keys('软件测试') 18 19 # 等待5s 20 sleep(5) 21 22 # 退出浏览器 23 driver.quit()
link_text定位
- 解释:通过html页面标签的><中的文本来进行a标签的定位
- 函数:find_element_by_class_link_text(‘文本’)
- 代码示例:代码第14行使用link_text定位到百度首页的搜索输入框
1 from selenium import webdriver 2 from time import sleep 3 4 # 获取浏览器驱动 5 driver = webdriver.Chrome() 6 7 # 访问百度首页 8 driver.get('https://www.baidu.com') 9 10 # 浏览器窗口最大化 11 driver.maximize_window() 12 13 # 定位百度网页上的新闻超链接标签 14 bd_input = driver.find_element_by_link_text('新闻') 15 print(bd_input.text) 16 17 # 等待5s 18 sleep(5) 19 20 # 退出浏览器 21 driver.quit()
partail_link_text定位
- 解释:通过html页面标签的><中的文本来进行a标签的定位,区别在于partail_link_text支持文本模糊查询
- 函数:find_element_by_class_partail_link_text(‘文本’)
- 代码示例:代码第14行使用partail_link_text定位到百度首页的搜索输入框
1 from selenium import webdriver 2 from time import sleep 3 4 # 获取浏览器驱动 5 driver = webdriver.Chrome() 6 7 # 访问百度首页 8 driver.get('https://www.baidu.com') 9 10 # 浏览器窗口最大化 11 driver.maximize_window() 12 13 # 定位百度网页上的搜索输入框 14 bd_input = driver.find_element_by_partial_link_text('新') 15 print(bd_input.text) 16 17 # 等待5s 18 sleep(5) 19 20 # 退出浏览器 21 driver.quit()
css_selector定位
- 解释:通过css选择器进行页面元素定位
- 函数:find_element_by_css_selector(‘#id值或者.class值’),css选择器有很多种写法,我们只掌握常用的几种方式即可,具体使用查看代码示例
- 代码示例:代码第14行开始详细介绍css_selector定位
1 from selenium import webdriver 2 from time import sleep 3 4 # 获取浏览器驱动 5 driver = webdriver.Chrome() 6 7 # 访问百度首页 8 driver.get('https://www.baidu.com') 9 10 # 浏览器窗口最大化 11 driver.maximize_window() 12 13 # #id值定位百度网页上的搜索输入框 14 bd_input = driver.find_element_by_css_selector('#kw') 15 16 # .class值定位 17 bd_input1 = driver.find_element_by_css_selector('.wd') 18 19 # css属性选择器定位 20 bd_input2 = driver.find_element_by_css_selector('input[id="kw"]') 21 22 # css绝对路径定位 23 bd_input3 = driver.find_element_by_css_selector('html>body>div>div>div>div>div>form>span>input[name="wd"]') 24 25 # 输入框中输入软件测试 26 bd_input.send_keys('软件测试') 27 28 # 等待5s 29 sleep(5) 30 31 # 退出浏览器 32 driver.quit()
XPath定位
- 解释:通过XPath路径进行页面元素定位,他几乎能解决所有的元素定位,尤其是没有id和class的元素
- 函数:find_element_by_xpath(‘xpath值’),xpath获取方式可以选择页面元素,右键copy xpath获得,也可以自己编写,有兴趣的可以专门学习以下xpath语法
- 代码示例:代码第14行开始详细介绍xpath定位
1 from selenium import webdriver 2 from time import sleep 3 4 # 获取浏览器驱动 5 driver = webdriver.Chrome() 6 7 # 访问百度首页 8 driver.get('https://www.baidu.com') 9 10 # 浏览器窗口最大化 11 driver.maximize_window() 12 13 # xpath定位百度网页上的搜索输入框 14 bd_input = driver.find_element_by_xpath('//*[@id="kw"]') 15 # 输入框中输入软件测试 16 bd_input.send_keys('软件测试') 17 18 # 等待5s 19 sleep(5) 20 21 # 退出浏览器 22 driver.quit()
tag_name定位
- 解释:通过标签名称定位页面元素
- 函数:find_element_by_tag_name(‘标签名称’),标签名称就是html标签类型,例如:input标签、a标签、span标签,select标签等等
- 代码示例:代码第14行开始详细介绍tag_name定位
1 from selenium import webdriver 2 from time import sleep 3 4 # 获取浏览器驱动 5 driver = webdriver.Chrome() 6 7 # 访问百度首页 8 driver.get('https://www.baidu.com') 9 10 # 浏览器窗口最大化 11 driver.maximize_window() 12 13 # 标签名称定位页面元素 14 bd_input = driver.find_element_by_tag_name('input') 15 # 输入框中输入软件测试 16 bd_input.send_keys('软件测试') 17 18 # 等待5s 19 sleep(5) 20 21 # 退出浏览器 22 driver.quit()
浙公网安备 33010602011771号