说明
1.如果只是想解析网页中的数据,推荐使用lxml。lxml底层使用C语言,解析效率会更高。
2.如果需要对元素进行操作,比如传值或点击按钮,就需要使用selenium提供的查找元素方法。
3.推荐使用xpath和css元素选择器进行定位。
目录
九.find_element与find_elements区别
本文以百度搜索为例演示selenium常用的元素定位方法。
百度搜索框代码

一.通过xpath定位
# 通过xpath定位,并在搜索框中填入Python
inputText = driver.find_element_by_xpath('//*[@id="kw"]').send_keys('Python')运行效果

二.通过元素id定位
#通过元素id定位
inputText = driver.find_element_by_id('kw').send_keys('Python')运行结果同上。
三.通过css选择器定位
# 通过css选择器定位
inputText = driver.find_element_by_css_selector('#kw').send_keys('Python')运行结果同上。
四.通过元素name定位
# 通过元素name定位
inputText = driver.find_element_by_name('wd').send_keys('Python')运行结果同上。
五.通过元素class_name定位
# 通过元素class_name定位
inputText = driver.find_element_by_class_name('s_ipt').send_keys('Python')运行结果同上。
六.通过链接文本元素定位

# 通过链接文本元素定位
driver.find_elements_by_link_text('hao123')[0].click()
七.通过部分链接文本定位
# 通过部分链接文本元素定位
driver.find_element_by_partial_link_text('hao').click()运行结果同上。
八.通过标签名定位
适用情况:目标元素在当前html中是唯一标签或众多定位出的标签中的第一个。
九.find_element与find_elements区别
find_elemnet:定位到是一个对象,定位不到则报错。
find_elemnets:定位到是一个含元素的列表,定位不到是一个空列表。
十.示例代码
""" driver元素定位方法 """
from selenium import webdriver
import time
url = 'https://www.baidu.com'
# 创建浏览器对象
driver = webdriver.Chrome()
# 访问百度
driver.get(url)
# # 通过xpath定位
# inputText = driver.find_element_by_xpath('//*[@id="kw"]').send_keys('Python')
#
# # 通过元素id定位
# inputText = driver.find_element_by_id('kw').send_keys('Python')
# # 通过css选择器定位
# inputText = driver.find_element_by_css_selector('#kw').send_keys('Python')
#
# # 通过元素name定位
# inputText = driver.find_element_by_name('wd').send_keys('Python')
# # 通过元素class_name定位
# inputText = driver.find_element_by_class_name('s_ipt').send_keys('Python')
# # 通过链接文本元素定位
# driver.find_elements_by_link_text('hao123')[0].click()
# 通过部分链接文本元素定位
driver.find_element_by_partial_link_text('hao').click()
time.sleep(2)
版权声明:本文为snailzzw原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。