selenium学习之查找元素(二)

通过selenium的使用可以驱动浏览器来模拟加载网页,简单定位元素和获取对应的数据:
(1)find_elements_by_id  # 根据id属性值获取元素列表
(2)find_elements_by_class_name  # 根据类名获取元素列表
(3)find_elements_by_tag_name  # 根据标签名获取元素列表
(4)find_elements_by_css_selector  # 根据CSS选择器获取元素列表
(5)find_elements_by_xpath  # 返回一个包含元素的列表
(6)find_elements_by_partial_link_text  # 根据标签包含的文本获取元素列表,模糊定位
注意:若上述方法中的elements去掉 s ,就会返回单个元素

from selenium import webdriver

if __name__ == '__main__':
    driver = webdriver.Chrome()
    driver.get('https://www.douban.com/')
    
    # 1.通过标签的id值获取单个标签
    task1 = driver.find_element_by_id('anony-nav')    # 返回值为标签对象
    print(task1)

    # 2.通过标签的id值获取多个标签
    task2 = driver.find_elements_by_id('anony-nav')    # 返回值为包含多个标签对象的list
    print(task2)

    # 3.通过标签的class属性值获取标签
    task3 = driver.find_elements_by_class_name('anony-nav-links')    # 返回值为标签对象的list
    print(task3)

    # 4.通过Xpath获取左上角豆瓣图片的<a>标签
    task4 = driver.find_elements_by_xpath('//*[@id="anony-nav"]/h1/a')    # 返回值为标签对象的list
    print(task4)

    # 5.通过标签包裹的文本“下载豆瓣 APP”获取元素列表(精确定位)
    task5 =driver.find_element_by_link_text('下载豆瓣 App')    # 返回值为标签对象
    print(task5)

    # 6.通过标签包裹的文本“豆瓣”获取元素列表(模糊定位)
    task6 = driver.find_elements_by_partial_link_text('豆瓣')
    print(len(task6))

    # 7.通过标签名获取元素列表
    task7 = driver.find_elements_by_tag_name('div')
    print(len(task7))

    # 8.获取<h1>标签包裹的文本内容
    task8 = driver.find_element_by_tag_name('h1')
    print(task8.text)

    # 9.通过标签包裹的文本“下载豆瓣 App”获取期href属性值
    task9 = driver.find_element_by_link_text('下载豆瓣 App')
    print(task9.get_attribute('href'))

    driver.close()
    driver.quit()

获取标签的通用方法:

1 from selenium.webdriver.common.by import By
2 
3 result = driver.find_element(By.ID, 'q')


原文地址:https://www.cnblogs.com/chang2021/p/13773612.html