cnblogs0

本篇文章整理了元素定位的基础知识——单个元素定位方式

一、单个元素定位方式简介

1. find_element_by_id

  通过元素的id属性进行定位。以百度首页为例,首先进入https://www.baidu.com,按F12进入开发人员页面,然后单击调试窗口的左上角的选择图标,然后选中百度搜索框,即可看到调试窗口对应所选元素的代码突出显示,如下图,可以看到百度搜索框的id为kw。

图1

2. find_element_by_name

  通过元素的name属性进行定位。如上图,百度搜索框的name为wd。

3. find_element_by_class_name

  通过元素的class属性进行定位。如图1所示,百度搜索框的class_name为s_ipt。

4. find_element_by_link_text

  通过超链接的文本内容进行定位。

5. find_element_by_partial_link_text

  同4,不过该方法是通过模糊方式进行定位的,即通过超链接的部分文本内容进行定位。

6. find_element_by_xpath

  通过元素的xpath路径表达式进行定位。如下图,选中突出显示的代码右键选择copy,选择复制元素的xpath,百度搜索框对应的xpath为//*[@id="kw"]。

图2

7. find_element_by_css_selector

  通过css选择器对元素进行定位。如上图,复制元素的selector,百度搜索框的css_selector为#kw。

8. find_element_by_tag_name

  通过元素的标签名进行定位。因为同一个页面中具有相同标签名的元素较多,所以不常用。

二、实例

 1 # coding=utf-8
 2 
 3 import time
 4 
 5 from selenium import webdriver
 6 
 7 # 单个元素的多种定位方式
 8 
 9 # 创建driver实例
10 driver = webdriver.Chrome()
11 # 打开百度首页
12 driver.get(\'https://www.baidu.com/\')
13 # 1.通过id属性进行定位
14 # driver.find_element_by_id(\'kw\').send_keys(\'id\')
15 # 2.通过name属性进行定位
16 # driver.find_element_by_name(\'wd\').send_keys(\'name\')
17 # 3.通过class属性进行定位
18 # driver.find_element_by_class_name(\'s_ipt\').send_keys(\'class_name\')
19 # 4.通过link_text进行定位
20 # driver.find_element_by_link_text(\'新闻\').click()
21 # 5.通过部分超链接文本内容进行定位
22 # driver.find_element_by_partial_link_text(\'闻\').click()
23 # 6.通过xpath进行定位
24 # driver.find_element_by_xpath(\'//*[@id="kw"]\').send_keys(\'xpath\')
25 # 7.通过css选择器进行定位
26 driver.find_element_by_css_selector(\'#kw\').send_keys(\'css_selector\')
27 # 定位\'百度一下\'按钮并点击
28 driver.find_element_by_id(\'su\').click()
29 # 等待5s
30 time.sleep(5)
31 # 退出驱动程序并关闭浏览器
32 driver.quit()
View Code

 

分类:

技术点:

相关文章: