1、八大元素定位:
定位器 Locator | 描述 |
---|---|
class name | 定位class属性与搜索值匹配的元素(不允许使用复合类名) |
css selector | 定位 CSS 选择器匹配的元素 |
id | 定位 id 属性与搜索值匹配的元素 |
name | 定位 name 属性与搜索值匹配的元素 |
link text | 定位link text可视文本与搜索值完全匹配的锚元素 |
partial link text | 定位link text可视文本部分与搜索值部分匹配的锚点元素。如果匹配多个元素,则只选择第一个元素。 |
tag name | 定位标签名称与搜索值匹配的元素 |
xpath | 定位与 xpath 表达式匹配的元素 |
(1)class定位:
driver.find_element_by_id("soutu-btn")
driver.find_element(By.ID, "soutu-btn") # 引入By模块
(2)、css定位
自行百度css选择器的语法,这里教一个简便的方法:Chrome浏览器调出元素检测,选择到元素后右键——>Copy——>Copy selector,然后把复制的内容粘贴到selenium元素定位方法中。
driver.find_element_by_css_selector("#kw")
(3)id定位:
driver.find_element_by_id("kw")
driver.find_element(By.ID, "kw") # 引入By模块
(4)name属性定位
driver.find_element_by_name('wd')
(5)link_text和partial_link_text定位,匹配a标签下的文字
ink_text和partial_link_text是作用于链接a标签的,link_text用于全部匹配文本值,partial_link_text用于部分匹配文本值。
driver.find_element_by_link_text("地图")
(6)tag name定位
通过元素的标签名来定位元素,如:input标签、button标签
driver.find_element_by_tag_name("input")
(7)xpath定位
xpath基本定位语法:
简单的使用如css定位那样,选择到元素后右键——>Copy——>Copy selector,然后把复制的内容粘贴到selenium元素定位方法中。
driver.find_element_by_xpath('//*[@id="kw"]')
综上为八大元素定位,比较常用的用红色标出:xpath定位、id定位、class定位、css定位
2、元素的基本操作
(1)、基本操作
点击: element.click()
输入内容: element.send_keys("内容")
清空内容: element.clear()
获取文本内容: element.text
获取属性值: element.get_attribute("属性名称")
获取元素的宽高: element.size,size和location一样都是实例属性,返回都是字典格式
获取元素的坐标: element.location,元素坐标值是通过元素的最左上角相对浏览器内容区域的左上角来定位的
from time import sleep
from selenium import webdriver
from WebDriver import driver_dir
driver = webdriver.Chrome(driver_dir.chrome_driver_path)
driver.get("http://www.baidu.com")
input_ele = driver.find_element_by_id("kw") # 定位元素
su_ele = driver.find_element_by_id("su")
# 获取元素的文本内容
input_ele.text
# 获取元素的某个属性
input_ele.get_attribute("属性名称")
# 输入内容
input_ele.send_keys("selenium")
# 点击操作
su_ele.click()
# 清空内容
input_ele.clear()
# 获取元素的宽高
print("【百度一下】按钮的宽高:{}".format(su_ele.size))
# 获取元素的x、y坐标值
print("【百度一下】按钮的坐标:{}".format(su_ele.location))
(2)、检查元素
是否可见: element.is_displayed(),返回True可见,反之不可见
是否可点击: element.is_enabled(),返回True可点击,反之不可点击
是否被选中: element.is_selected(),返回True被选中,反之未选中
from time import sleep
from selenium import webdriver
from WebDriver import driver_dir
# driver = webdriver.Chrome()
driver = webdriver.Chrome(executable_path=driver_dir.chrome_driver_path)
driver.maximize_window()
driver.get("https://www.baidu.com/")
sleep(1)
# id定位
ele = driver.find_element_by_id("kw")
print(ele.is_displayed())
print(ele.is_enabled())
print(ele.is_selected())