driver对象定位标签元素获取标签对象的方法

driver对象定位标签元素获取标签对象的方法

在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选择器来获取元素列表)
  • 注意:
    • find_element和find_elements的区别:
      • 多了个s就返回列表,没有s就返回匹配到的第一个标签对象
      • find_element匹配不到就抛出异常,find_elements匹配不到就返回空列表
    • by_link_text和by_partial_link_tex的区别:全部文本和包含某个文本       by_link_text若是部分文本的时候会报错
    • 以上函数的使用方法
      • driver.find_element_by_id('id_str')

find_element(s)_by_xpath 示例代码:

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()

步骤图片指示:

driver对象定位标签元素获取标签对象的方法_第1张图片

driver对象定位标签元素获取标签对象的方法_第2张图片

运行结果:

driver对象定位标签元素获取标签对象的方法_第3张图片

全部代码展示如下:

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: 定位到则是一个含有元素的列表,定位不到则是一个空列表
'''

find_elements_by_xpath 示例代码:

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)

运行效果如下:

driver对象定位标签元素获取标签对象的方法_第4张图片

步骤图片指示如下:

driver对象定位标签元素获取标签对象的方法_第5张图片

driver对象定位标签元素获取标签对象的方法_第6张图片

你可能感兴趣的:(爬虫,selenium,python)