• selenium元素定位


    1.id定位:find_element_by_id()方法,id属性html中一般情况是唯一的
    driver.find_element_by_id("kw")

    2.name定位:find_element_by_name(),name在html中不一定是唯一的
    driver.find_element_by_name("wd")

    3.class定位:find_element_by_class_name()
    driver.find_element_by_class_name("s_ipt")

    4.tag定位:find_element_by_tag(),使用率低,每一个元素相当于一个tag,如<div><input><a>,html会有大量重复的tag
    driver.find_element_by_tag_name("input")

    5.link定位:find_element_by_link_text(),链接文本精准定位
    driver.find_element_by_link_text("新闻")

    6.partial link定位:find_element_by_partial_link_text(),链接文本模糊定位,通过部分文本信息来定位
    driver.find_element_by_partial_link_text("新")

    7.xpath定位:find_element_by_xpath()
    7.1通过绝对路径定位
    driver.find_element_by_xpath("/html/body/div[1]/div[1]/div/div[1]/div/div[1]/map/area")
    7.2通过相对路径定位
    driver.find_element_by_xpath("//map/area")
    driver.find_element_by_xpath("//map/.")
    7.3通过元素属性定位
    driver.find_element_by_xpath("//area[@id]")
    driver.find_element_by_xpath("//area[@title=\"点击一下,了解更多\"]")
    7.4通过层级与属性的绝对路径定位
    driver.find_element_by_xpath("//span[@class='bg s_ipt_wr']/input")
    driver.find_element_by_xpath("//form[@id='form']/span[2]/input")
    7.5使用逻辑运算符定位
    driver.find_element_by_xpath("input[@id='kw' and @class='su']/span/input")

    8.css定位:find_element_by_css_selector(),可定位控件的任意属性,定位速度比xpath快
    8.1 driver.find_element_by_css_selector(".class") #css通过class属性定位
    8.2 driver.find_element_by_css_selector("#id") #css通过id属性定位
    8.3 driver.find_element_by_css_selector("input") #css通过标签名定位,使用率低
    8.4 driver.find_element_by_css_selector("span>input") #css通过父子关系定位,选择父元素<span>的所有<input>元素
    8.5 driver.find_element_by_css_selector("[name=kw]") #css通过属性定位
    8.6 driver.find_element_by_css_selector("span.bg_s_btn_wr>input#su") #css通过组合定位

    9.用by定位:
    需导入from selenium.webdriver.common.by import By
    driver.find_element(By.ID,"kw")
    driver.find_element(By.NAME,"wd")
    driver.find_element(By.CLASS_NAME,"s_ipt")
    driver.find_element(By.TAG_NAME,"input")
    driver.find_element(By.LINK_TEXT,"新闻")
    driver.find_element(By.PARTIAL_LINK_TEXT,"新")
    driver.find_element(By.XPATH,"//*[@class='bg s_btn']")
    driver.find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su")



    以下是一个简单的例子:
    from selenium import webdriver
    import time
    
    driver = webdriver.Firefox()
    # driver = webdriver.Chrome()
    # driver = webdriver.Ie()
    driver.maximize_window()                  #窗口最大化
    driver.get("http://www.baidu.com")
    print(driver.title)                              
    print("百度" in driver.title)
    print(driver.current_url)                  
    time.sleep(3)                                              #等待3秒
    driver.refresh()                                          #刷新页面
    driver.find_element_by_id("kw").send_keys("selenium2")        # id定位元素,输入字符串
    driver.find_element_by_id("kw").clear()                     #清楚输入内容
     driver.find_element_by_name("wd").send_keys("selenium3")   # name定位,输入内容
    driver.find_element_by_id("su").click()
    driver.quit()   
  • 相关阅读:
    Silverlight Toolkit ListBoxDragDropTarget学习笔记
    函数指针和指针函数(转)
    面试题_反转链表
    C++中的异或运算符^
    面试题_旋转字符串
    面试题_寻找丑数
    模拟一个简单的基于tcp的远程关机程序
    管理指针成员
    赫夫曼树编码问题
    堆的基本操作
  • 原文地址:https://www.cnblogs.com/annawong/p/10208278.html
Copyright © 2020-2023  润新知