3. 常见的元素定位---Try Xpath
- 环境准备
- firefox->附加组件->搜索Try Xpath->点击添加
- 查看页面元素
- 点击右上角插件TX
- 右键,查看页面元素
- 红色框中即为输入框的属性
- find_element_by_id()
- 可通过id属性定位到元素
- 定位到输入框后,用send_keys()方法
-
from selenium import webdriver import time driver=webdriver.Firefox() driver.get("https://www.baidu.com") time.sleep(3) #通过id定位到百度首页搜索框,搜索内容为python driver.find_element_by_id("kw").send_keys("python")
- find_element_by_name()
- 通过name定位到元素(name="wd”)
-
from selenium import webdriver import time driver=webdriver.Firefox() driver.get("https://www.baidu.com") time.sleep(3) #通过name定位到百度首页搜索框,搜索内容为python driver.find_element_by_name("wd").send_keys("python")
- find_element_by_class_name()
- 百度首页输入框class_name="s_ipt"
-
from selenium import webdriver import time driver=webdriver.Firefox() driver.get("https://www.baidu.com") time.sleep(3) #通过class_name定位到百度首页搜索框,搜索内容为python driver.find_element_by_class_name("s_ipt").send_keys("python")
- find_element_by_tag_name()
- 搜索框的tag为input
- 但是在一个页面中相同的标签有多个,所以一般不用标签来定位,该示例仅供理解,运行会报错
-
from selenium import webdriver import time driver=webdriver.Firefox() driver.get("https://www.baidu.com") time.sleep(3) #通过tag_name定位到百度首页搜索框,搜索内容为python driver.find_element_by_tag_name("input").send_keys("python")
- find_element_by_link_text()
- 定位到百度首页的“hao123”按钮
- 右键,查看页面元素
- href="https://www.hao123.com"为超链接
-
from selenium import webdriver import time driver=webdriver.Firefox() driver.get("https://www.baidu.com") time.sleep(3) #通过超链接定位到hao123按钮,并点击 driver.find_element_by_link_text("hao123").click()
- 定位到百度首页的“hao123”按钮
- find_element_by_partial_link_text()
- 超链接的字符串比较长时,可以选择模糊匹配方式,截取其中一部分字符串
- 如hao123可以输入hao
-
from selenium import webdriver import time driver=webdriver.Firefox() driver.get("https://www.baidu.com") time.sleep(3) #通过超链接定位到hao123按钮,并点击 driver.find_element_by_partial_link_text("hao").click()
- find_element_by_xpath()
- 在输入框元素查看器处,右键->复制->xpath //*[@id="kw"]
-
from selenium import webdriver import time driver=webdriver.Firefox() driver.get("https://www.baidu.com") time.sleep(3) #通过xpath定位到输入框,并搜索python driver.find_element_by_xpath("//*[@id='kw']").send_keys("python")
id的值需要用单引号‘’
- find_element_by_css_selector()
- 在输入框元素查看器处,右键,复制,css查看器 #kw
-
from selenium import webdriver import time driver=webdriver.Firefox() driver.get("https://www.baidu.com") time.sleep(3) #通过css_selector定位到输入框,并搜索python driver.find_element_by_css_selector("#kw").send_keys("python")