元素定位方式1、根据ID定位
2、根据name定位 只有input元素有name定位
3、根据class定位 一般用于定位多个元素
4、根据根据tag_name定位
5、根据link_text定位 只适用于超链接,根据超链接元素的文本进行定位,必须完全匹配
6、根据partial_link_text 根据超链接元素的文本进行定位,模糊匹配
7、根据xpath定位 根据元素的路径进行定位,包括绝对路径和相对路径
8、根据css定位 根据元素的样式进行定位
代码
from selenium import webdriver
from time import sleep
try:
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
#根据ID定位元素
input = driver.find_element_by_id('kw')
#根据name定位元素
input = driver.find_element_by_name('wd')
#根据class定位元素
input = driver.find_element_by_class_name('s_ipt')
#写入文本
input.send_keys('货拉拉')
#根据ID定位“百度一下”
btn = driver.find_element_by_id('su')
#根据class定位元素
btn = driver.find_element_by_class_name('s_btn')
#单击百度一下
btn.click()
#定位新闻
driver.find_element_by_link_text('新闻').click()
#模糊定位直播
driver.find_element_by_partial_link_text('直').click()
#xpath
#定位搜素框
#绝对路径 以/开头
driver.find_element_by_xpath('/html/body/div/div[2]/div[5]/div[1]/div/form/span[1]/input').send_keys('货拉拉')
#相对路径 以//开头
driver.find_element_by_xpath('//input[@class="s_ipt"]').send_keys('货拉拉')
driver.find_element_by_xpath('//input[@id="su"]').click()
#定位贴吧 精确定位
driver.find_element_by_xpath('//a[text() = "贴吧"]').click()
#定位设置
driver.find_element_by_xpath('//span[text() = "设置"]').click()
#定位百度热搜 模糊定位
driver.find_element_by_xpath('//*[contains(text(),"度热搜")]').click()
#属性定位 模糊匹配
driver.find_element_by_id('kw').send_keys('货拉拉')
driver.find_element_by_xpath('input[contains(@value,"一下")]').click()
except Exception as e:
print(e)
finally:
sleep(4)
#关闭当前浏览器窗口
driver.close()
#退出浏览器
driver.quit()
|