selenium_定位元素
对象的定位应该是自动化的核心,要想操作一个对象,首先应该识别这个对象。 一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪个街道、楼层、门牌找到这个人。
1 对象定位
webdriver提供了对象定位方法
- find_element(type,value)
- find_elements(type,value)
利用 By 类来确定哪种选择方式
from selenium.webdriver.common.by import By
chrome.find_element(by=By.ID,value='su')
By 类的一些属性如下
- ID = “id”
- NAME = “name”
- XPATH = “xpath”
- LINK_TEXT = “link text”
- PARTIAL_LINK_TEXT = “partial link text”
- TAG_NAME = “tag name”
- CLASS_NAME = “class name”
- CSS_SELECTOR = “css selector”
2 操作元素
前面讲到了不少知识都是定位元素,定位只是第一步,定位之后需要对这个原素进行操作。
鼠标点击呢还是键盘输入,这要取决于我们定位的是按钮还输入框。
一般来说,webdriver中比较常用的操作对象的方法有下面几个
- click 点击对象
- send_keys 在对象上模拟按键输入
- clear 清除对象的内容,如果可以的话
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from time import sleep
from selenium.webdriver.common.by import By
def test_element():
# 创建驱动对象
s = Service(executable_path='./chromedriver.exe')
# 创建一个浏览器
driver = webdriver.Chrome(service=s)
# 打个百度
driver.get('https://cn.bing.com/')
sleep(2)
# 获取 搜索框,并输出“百战”
driver.find_element(By.ID,'sb_form_q').send_keys('百战')
sleep(1)
# 获取 搜索按钮,并点击
driver.find_element(By.ID,'search_icon').click()
if __name__ =='__main__':
test_element()