• Selenium常用API的使用java语言之5-selenium元素定位


    1.selenium定位方法

    Selenium提供了8种定位方式。

    • id
    • name
    • class name
    • tag name
    • link text
    • partial link text
    • xpath
    • css selector

    这8种定位方式在Java selenium中所对应的方法为:

    • findElement(By.id())
    • findElement(By.name())
    • findElement(By.className())
    • findElement(By.tagName())
    • findElement(By.linkText())
    • findElement(By.partialLinkText())
    • findElement(By.xpath())
    • findElement(By.cssSelector())

    2.定位方法的用法

    假如我们有一个Web页面,通过前端工具(如,Firebug)查看到一个元素的属性是这样的。

    <html>
      <head>
      <body link="#0000cc">
        <a id="result_logo" href="/" οnmοusedοwn="return c({'fm':'tab','tab':'logo'})">
        <form id="form" class="fm" name="f" action="/s">
          <span class="soutu-btn"></span>
            <input id="kw" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off">
    

    我们的目的是要定位input标签的输入框。

    //通过id定位:
    driver.findElement(By.id("kw"))
    //通过name定位:
    driver.findElement(By.name("wd"))
    //通过class name定位:
    driver.findElement(By.className("s_ipt"))
    //通过tag name定位:
    driver.findElement(By.tagName("input"))
    //通过xpath定位,xpath定位有N种写法,这里列几个常用写法:
    driver.findElement(By.xpath("//*[@id='kw']"))
    driver.findElement(By.xpath("//*[@name='wd']"))
    driver.findElement(By.xpath("//input[@class='s_ipt']"))
    driver.findElement(By.xpath("/html/body/form/span/input"))
    driver.findElement(By.xpath("//span[@class='soutu-btn']/input"))
    driver.findElement(By.xpath("//form[@id='form']/span/input"))
    driver.findElement(By.xpath("//input[@id='kw' and @name='wd']"))
    //通过css定位,css定位有N种写法,这里列几个常用写法:
    driver.findElement(By.cssSelector("#kw")
    driver.findElement(By.cssSelector("[name=wd]")
    driver.findElement(By.cssSelector(".s_ipt")
    driver.findElement(By.cssSelector("html > body > form > span > input")
    driver.findElement(By.cssSelector("span.soutu-btn> input#kw")
    driver.findElement(By.cssSelector("form#form > span > input")    
    

    接下来,我们的页面上有一组文本链接。

    <a class="mnav" href="http://news.baidu.com" name="tj_trnews">新闻</a>
    <a class="mnav" href="http://www.hao123.com" name="tj_trhao123">hao123</a>
    
    //通过link text定位:
    driver.findElement(By.linkText("新闻")
    driver.findElement(By.linkText("hao123")
    //通过partialLink text定位:
    driver.findElement(By.partialLinkText("新")
    driver.findElement(By.partialLinkText("hao")
    driver.findElement(By.partialLinkText("123")
    

    关于xpaht和css的定位比较复杂,请参考: xpath语法css选择器

  • 相关阅读:
    Sanic二十七:Sanic + tortoise-orm 之Q对象
    Sanic二十六:Sanic + tortoise-orm 之Model、QuerySet提供的查询方法
    Sanic二十五:Sanic + tortoise-orm 之表关联
    Sanic二十四:Sanic + tortoise-orm 之常用字段类型和参数
    Sanic二十三:Sanic + tortoise-orm 之父类Field的参数、属性、方法
    Sanic二十二:Sanic + tortoise-orm 之使用aerich执行数据库迁移
    Sanic二十一:Sanic + tortoise-orm 之模型定义
    [JavaScript]Promise:异步编程
    手把手教你搭建一个SpringBoot工程
    Android 11(R) Power HAL AIDL简析 -- 基本接口
  • 原文地址:https://www.cnblogs.com/zhizhao/p/11303158.html
Copyright © 2020-2023  润新知