在selenium中可以通过多种方式来定位标签,返回标签元素对象
find_element_by_id (返回一个元素)
find_element(s)_by_class_name (根据类名获取元素列表) 这是效果其次最好的 鼠标右键选择复制Copy selector
find_element(s)_by_name (根据标签的name属性值返回包含标签对象元素的列表)
find_element(s)_by_xpath (返回一个包含元素的列表) 这是效果最好的一个
find_element(s)_by_link_text (根据连接文本获取元素列表)
find_element(s)_by_partial_link_text (根据链接包含的文本获取元素列表)
find_element(s)_by_tag_name (根据标签名获取元素列表)
find_element(s)_by_css_selector (根据css选择器来获取元素列表)
driver.find_element_by_id('id_str')
from selenium import webdriver
url = 'http://www.baidu.com'
driver = webdriver.Chrome()
driver.get(url)
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('python3')
driver.find_element_by_id('su').click()
步骤图片指示:
运行结果:
全部代码展示如下:
from selenium import webdriver
url = 'http://www.baidu.com'
driver = webdriver.Chrome()
driver.get(url)
# 通过xpath进行元素定位
# driver.find_element_by_xpath('//*[@id="kw"]').send_keys('python3')
# 通过css选择器进行元素定位
# driver.find_element_by_css_selector('#kw').send_keys('python3')
# 通过class属性值进行元素定位
# driver.find_element_by_class_name('s_ipt').send_keys('python3')
# 通过name属性值进行元素定位
# driver.find_element_by_name('wd').send_keys('python3')
# driver.find_elements_by_id('su').click()
# 通过链接文本进行元素定位
# driver.find_element_by_link_text('hao123').click()
# driver.find_element_by_link_text('hao1').click() # 此时这种情况会报错
# driver.find_element_by_partial_link_text('hao1').click()
# 目标元素在当前html中是唯一标签的时候或者是众多定位出来的标签中的第一个的时候才使用
# print(driver.find_element_by_tag_name('title'))
print(driver.find_element_by_tag_name('div'))
'''
find_element_by_xxx: 定位到则是一个对象,定位不到则报错
find_elements_by_xxx: 定位到则是一个含有元素的列表,定位不到则是一个空列表
'''
from selenium import webdriver
url = 'https://sh.58.com/chuzu/?utm_source=market&spm=u-2d2yxv86y3v43nkddh1.BDPCPZ_BT&PGTID=0d100000-0000-23da-518d-498c7ae1010a&ClickID=2'
driver = webdriver.Chrome()
driver.get(url)
# 通过xpath进行元素定位
xpath_list = driver.find_elements_by_xpath('/html/body/div[7]/div[2]/ul/li/div[2]/h2/a')
for i in xpath_list:
print(i)
运行效果如下:
步骤图片指示如下: