Selenium--定位页面上的元素
文章目录
- 前言
- 一、定位元素方法
- 二、定位元素应用
- 1.find_element_by_id()
- 2.find_element_by_name()
- 3.find_element_by_class_name()
- 4.find_element_by_tag_name()
- 5.find_element_by_link_text()
- 6.find_element_by_partial_link_text()
- 7.find_element_by_xpath()
- 8.find_element_by_css_selector()
前言
UI自动化的正常流程如下:
1、打开浏览器
2、打开网页
3、定位元素
4、操作元素
那么在进行自动化之前,除了搭建运行环境外,需要学会定位元素
一、定位元素方法
元素名称 | webdriver api |
---|---|
id | find_element_by_id() |
name | find_element_by_name() |
class name | find_element_by_class_name() |
tag name | find_element_by_tag_name() |
link text | find_element_by_link_text() |
partial link text | find_element_by_partial_link_text() |
xpath | find_element_by_xpath() |
css selector | find_element_by_css_selector() |
二、定位元素应用
1.find_element_by_id()
代码如下(示例):
from selenium import webdriver
import time
# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get('https://www.baidu.com')
# 通过id定位
driver.find_element_by_id('kw').send_keys('selenium')
# 强制等待2秒查看效果
time.sleep(2)
# 关闭浏览器
driver.quit()
2.find_element_by_name()
代码如下(示例):
from selenium import webdriver
import time
# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get('https://www.baidu.com')
# 通过name定位
driver.find_element_by_name('wd').send_keys('selenium')
# 强制等待2秒查看效果
time.sleep(2)
# 关闭浏览器
driver.quit()
3.find_element_by_class_name()
代码如下(示例):
from selenium import webdriver
import time
# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get('https://www.baidu.com')
# 通过name定位
driver.find_element_by_class_name('s_ipt').send_keys('selenium')
# 强制等待2秒查看效果
time.sleep(2)
# 关闭浏览器
driver.quit()
4.find_element_by_tag_name()
代码如下(示例):
from selenium import webdriver
import time
# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get('https://www.baidu.com')
# 通过name定位
driver.find_element_by_tag_name('h').send_keys('selenium')
# 强制等待2秒查看效果
time.sleep(2)
# 关闭浏览器
driver.quit()
5.find_element_by_link_text()
代码如下(示例):
from selenium import webdriver
import time
# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get('https://www.baidu.com')
# 通过name定位
driver.find_element_by_link_text('hao123').click()
# 强制等待2秒查看效果
time.sleep(2)
# 关闭浏览器
driver.quit()
6.find_element_by_partial_link_text()
代码如下(示例):
from selenium import webdriver
import time
# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get('https://www.baidu.com')
# 通过partial_link_text定位
driver.find_element_by_partial_link_text('图').click()
# 强制等待2秒查看效果
time.sleep(2)
# 关闭浏览器
driver.quit()
7.find_element_by_xpath()
代码如下(示例):
from selenium import webdriver
import time
# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get('https://www.baidu.com')
# 通过partial_link_text定位
driver.find_element_by_xpath("//p[@id='kw']").click()
# 强制等待2秒查看效果
time.sleep(2)
# 关闭浏览器
driver.quit()
8.find_element_by_css_selector()
类型 | 说明 |
---|---|
#id | id选择器 根据id属性来定位元素 |
.class | class选择器 根据class属性值来定位元素 |
[attribute=‘value’] | 根据属性来定位元素 |
element>element | 根据元素层级来定位 父元素>子元素 |
代码如下(示例):
from selenium import webdriver
from time import sleep
# 打开chrome浏览器
driver = webdriver.Chrome()
# 打开百度搜索页面
driver.get('https://www.baidu.com')
#1:通过id来定位
#driver.find_element_by_css_selector("#kw").send_keys("selenium") 通过id来定位前面需要加#号+id
#2:通过class来定位
#driver.find_element_by_css_selector('.s_ipt').send_keys('selenium') #class来定位,class前面+.
#3:通过属性来定位
#driver.find_element_by_css_selector("[autocomplete='off']").send_keys('selenium') #属性要在[]里面
# 强制等待2秒查看效果
time.sleep(2)
# 关闭浏览器
driver.quit()