zoukankan      html  css  js  c++  java
  • 《SeleniumBasic 3.141.0.0

    SeleniumBasic的FindElement共有8个系列方法。其中XPath和CssSelector技巧性最强,其余6种定位方法很直观简单。

    这节学习使用XPath定位一个元素周围的其他元素。

    百度首页左上角有7个超链接,这些超链接的父亲是id为s-top-left的div,爷爷是id为head的div。

    首先简单地说一下XPath的语法

    //div[@id='s-top-left']/a[3]

    //表示根节点,也就是WD对象。div表示根节点下的第一个div,方括号里@用于限定属性条件,/表示下一级的路径分隔符,a[3]表示第3个超链接。

    注意:XPath的中括号里的索引起始于1,不是0。

    上面可以概括为:查找id为s-top-left的div下面的第3个超链接。请看代码:

    Dim div As IWebElement
    Dim map As IWebElement
    Set div = WD.FindElementByXPath("//div[@id='s-top-left']")
    Set map = div.FindElementByXPath("a[3]")
    Set map = WD.FindElementByXPath("//div[@id='s-top-left']/a[3]")
    Debug.Print map.text '地图
    Debug.Print map.FindElementByXPath("preceding-sibling::a[1]").text 'hao123
    Debug.Print map.FindElementByXPath("preceding-sibling::a[2]").text '新闻
    Debug.Print map.FindElementByXPath("following-sibling::a[1]").text '新闻
    Debug.Print map.FindElementByXPath("following-sibling::a[2]").text '新闻
    Debug.Print map.FindElementByXPath("../..").GetAttribute("id") 'head

    上述程序中,首先定位到“地图"赋给变量map,然后以map为中心,找到它的两个哥哥和两个弟弟(注意括号内数字的顺序,数字越大表示离自己越远)。

    定位父级元素使用两个小数点,例如../..表示定位当前元素的爷爷。所以最后一句代码的结果是head。

  • 相关阅读:
    window 编译lua 5.3
    邮件服务器软件
    mkyaffs2image 生成不了120M的镜像文件的解决方法
    C static struct
    uboot 如何向内核传递参数
    linux 链接理解
    snmp 协议之理解
    交叉编译知识点总结
    回滚原理 Since database connections are thread-local, this is thread-safe.
    REST 架构的替代方案 为什么说GraphQL是API的未来?
  • 原文地址:https://www.cnblogs.com/ryueifu-VBA/p/13762915.html
Copyright © 2011-2022 走看看