1、单个元素的定位(解释内容都写在了代码的注释里,这里不再用文字描述)
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
wd = webdriver.Chrome()
wd.get('https://www.baidu.com/')
# 一,定位元素
# 1、通过xpath定位元素
# wd.find_element(by=By.XPATH,value='//*[@id="kw"]').send_keys('selenium')
# 2、通过id定位元素
# wd.find_element(by=By.ID,value='kw').send_keys('python')
# 3、通过class定位元素
# wd.find_element(by=By.CLASS_NAME,value='s_ipt').send_keys('python')
# 4、通过tag_name定位元素,即根据标签名称获取元素列表
print(wd.find_element(by=By.TAG_NAME, value='a')) # 注意这个element,如有多个,则只返回第一个。
print(wd.find_elements(by=By.TAG_NAME, value='a')) # 注意这个elements,多了个s,就能获取所有的,返回的是一个列表
# 5、通过link_text定位元素,即根据链接文本定位,百度首页有一个‘地图’的链接文本,用这个方法就能定位到"地图"这个文本对应的链接
# wd.find_element(by=By.LINK_TEXT,value='地图').click()
# 6、通过partial_link_text定位元素,即根据部分文本定位。partial是部分的意思
# wd.find_element(by=By.PARTIAL_LINK_TEXT,value='网').click()
time.sleep(3)
wd.quit()
2、一组元素的定位
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
wd = webdriver.Chrome()
wd.get('https://www.baidu.com/')
# 一,定位一组元素,跟定位一个元素一样,只是把定位的方式改成了find_elements,返回的是一个列表,可以用for循环遍历,不过就不能用click点击了
# 1、通过xpath定位元素
xp = wd.find_elements(by=By.XPATH, value='//*[@id="kw"]')
print('xp',xp)
# 2、通过id定位元素
id = wd.find_elements(by=By.ID, value='kw')
print('id',id)
# 3、通过class定位元素
cl = wd.find_element(by=By.CLASS_NAME, value='s_ipt')
print('cl',cl)
# 4、通过tag_name定位元素,即根据标签名称获取元素列表
# print(wd.find_element(by=By.TAG_NAME, value='a')) # 注意这个element,如有多个,则只返回第一个。
tag_name = wd.find_elements(by=By.TAG_NAME, value='a') # 注意这个elements,多了个s,就能获取所有的,返回的是一个列表
print('tag_name',tag_name)
# 5、通过link_text定位元素,即根据链接文本定位,百度首页有一个‘地图’的链接文本,用这个方法就能定位到"地图"这个文本对应的链接
lt = wd.find_elements(by=By.LINK_TEXT, value='地图')
print('lt',lt)
# 6、通过partial_link_text定位元素,即根据部分文本定位。partial是部分的意思
pl = wd.find_elements(by=By.PARTIAL_LINK_TEXT, value='网')
print('pl', pl)
time.sleep(3)
wd.quit()