• 定位一组元素.py


    from selenium import webdriver
    import os,time
    driver = webdriver.Chrome()
    driver.get("http://www.baidu.com")
    #选择页面上所有的tag name为input的元素
    inputs = driver.find_elements_by_tag_name("input")

    """
    通过tag name的定位方式很难定位到单个元素,因为元素标签名重名的概率很高,因而在定位一组元素时,
    这种方式就派上用场了。在上面的例子中先通过find_elements_by_tag_name)找到一组标签名为input的元素。
    然后通过for循环进行遍历,在遍历过程中,通过get_attribute)方法获取元素的type属性是否为“checkbox”,如果为
    “checkbox”,就认为这个元素是一个复选框,对其进行勾选操作。"""
    #过滤出type为CheckBox的元素点击勾选
    for i in inputs:
    if i.get_attribute("type") == "checkbox":
    i.click()
    time.sleep(1)
    driver.quit()

    #通过xpath找到type=CheckBox的元素
    checkboxes = driver.find_elements_by_xpath("//input[@type='checkbox']")

    #通过css找到type=CheckBox的元素
    checkboxes = driver.find_elements_by_css_selector("input[type=checkbox]")

    for checkbox in checkboxes:
    checkbox.click()
    time.sleep(1)

    #打印当前页面上type为checkbox的个数
    print(len(checkbox))

    #把页面上最后一个checkbox的钩去掉
    driver.find_elements_by_css_selector("input[type=checkbox]").pop().click()

    #pop(0)默认获取一组元素中的第一个

    #pop(1)默认获取一组元素中的第二个
  • 相关阅读:
    linux 文件记录锁详解
    Linux fcntl函数详解
    大数相加
    信雅达面试题atoi函数实现
    linux getopt函数详解
    strcpy和memcpy的区别
    手把手写数据结构之栈操作
    手把手写数据结构之队列操作
    手把手写数据结构之双向链表操作
    ORACLE查询内存溢出
  • 原文地址:https://www.cnblogs.com/zhang-da/p/12210640.html
Copyright © 2020-2023  润新知