zoukankan      html  css  js  c++  java
  • 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')


  • 相关阅读:
    EXTJS 4.2 资料 控件之checkboxgroup的用法(静态数据)
    EXTJS 4.2 资料 控件之Window窗体相关属性的用法
    EXTJS 4.2 资料 控件之textfield文本框加事件的用法
    Entity Framework 学习笔记(一)之数据模型 数据库
    EXTJS 4.2 资料 控件之checkboxgroup的用法(动态数据)
    EXTJS 4.2 资料 控件之Grid 列鼠标悬停提示
    Entity Framework 学习笔记(二)之数据模型 Model 使用过程
    EXTJS 4.2 资料 控件之radiogroup 的用法
    EXTJS API
    vue移动端弹框组件,vue-layer-mobile
  • 原文地址:https://www.cnblogs.com/chang2021/p/13773612.html
Copyright © 2011-2022 走看看