zoukankan      html  css  js  c++  java
  • selenium 自动化基础知识(各种定位)

    元素的定位

    webdriver 提供了一很多对象定位方法  例如:

    [ id ] , name , class name , link text , partial link text , tag name, xpath , css selector

    例如:下图

    # -*- coding: utf-8 -*-
    # 通过id方式定位 browser.find_element_by_id("kw").send_keys("selenium")
    # 通过name方式定位 browser.find_element_by_name("wd").send_keys("selenium")
    # 通过tag name方式定位 browser.find_element_by_tag_name("input").send_keys("selenium")
    # 通过class name 方式定位 browser.find_element_by_class_name("s_ipt").send_keys("selenium")
    # 通过CSS方式定位 browser.find_element_by_css_selector("#kw").send_keys("selenium")
    # 通过xphan方式定位 browser.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")

    还可以 通过css 属性     获取

    find_element_by_css_selector("#kw")
    通过 find_element_by_css_selector( )函数,选择取百度输入框的 id 属性来定义 
    也可以取 name 属性
    <a href="http://news.baidu.com" name="tj_news">新 闻</a> driver.find_element_by_css_selector("a[name="tj_news"]").click() 可以取 title 属性 <a onclick="queryTab(this);" mon="col=502&pn=0" title="web" href="http://www.baidu.com/">网页</a> driver.find_element_by_css_selector("a[title="web"]").click() 也可以是取..: <a class="RecycleBin xz" href="javascript:void(0);"> driver.find_element_by_css_selector("a.RecycleBin").click()

    XPath 定位

     XPath 是一种在 XML 文档中定位元素的语言。因为 HTML 可以看做 XML 的一种实现, 所以 selenium 用户可是使用这种强大语言在 web 应用中定位元素。

    xpath:attributer (属性) 
    driver.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")
    #input标签下id =kw的元素 xpath:idRelative (id相关性)
    driver.find_element_by_xpath("//div[@id='fm']/form/span/input").send_keys("s elenium")
    #在/form/span/input 层级标签下有个div标签的id=fm的元素 driver.find_element_by_xpath("//tr[@id='check']/td[2]").click()
    # id为'check' 的tr ,定位它里面的第2个td xpath:position (位置)
    driver.find_element_by_xpath("//input").send_keys("selenium")
    driver.find_element_by_xpath("//tr[7]/td[2]").click()
    #第7个tr 里面的第2个td xpath: href (水平参考)
    driver.find_element_by_xpath("//a[contains(text(),'网页')]").click()
    #在a标签下有个文本(text)包含(contains)'网页' 的元素 xpath:link driver.find_element_by_xpath("//a[@href='http://www.baidu.com/']").click()
    #有个叫a的标签,他有个链接href='http://www.baidu.com/ 的元素

    link 定位(有时候不是一个输入框也不是一个按钮,而是一个文字链接,我们可以通过 link )

    from selenium import webdriver 
    browser = webdriver.Firefox()
    browser.get("http://www.baidu.com")
    browser.find_element_by_link_text("贴 吧").click()
    browser.quit()

      一般一个页面上不会出现相同的文件链接,通过文字链接来定位也是一种简单有效 的定位方式

     Partiallinktext 定位

    通过部分链接定位,这个有时候也会用到,我还没有想到很好的用处。拿上面的例 子,我可以只用链接的一部分文字进行匹配:

     browser.find_element_by_partial_link_text("贴").click()

    #通过find_element_by_partial_link_text() 函数,我只用了“贴”字,脚本一样找到了"贴 吧 " 的链接

     #  源自 虫师

  • 相关阅读:
    vs2019+GLFW+GLAD出现无法解析的外部符号
    图的着色算法
    Head First C# 实验室2(冒险游戏)
    击中和击不中变换
    开运算和闭运算
    膨胀与腐蚀
    两数相加(C#数据结构和算法练习)
    C# 特性和索引(C#学习笔记06)
    C# 索引器(C#学习笔记05)
    C# yield checked,unchecked lock语句(C#学习笔记04)
  • 原文地址:https://www.cnblogs.com/zhichao123/p/10759831.html
Copyright © 2011-2022 走看看