Title

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()

 

posted @ 2023-04-02 09:18  huayaofan  阅读(27)  评论(0)    收藏  举报