【Selenium 3+Java自动化(6)】-CSS定位语法

一、前言

  本章节讲解一下CSS定位。

  CSS定位相对于XPath定位的优点是:css定位更快,语法更简洁。

  这一篇css的定位方法,主要是对比上一篇的xpath来的,基本上xpath能完成的,css也可以做到。两篇对比学习,更容易理解。

二、CSS:属性定位

    1、通过id属性定位,需要加上标识符“#”,如:#kw;

        element = driver.findElement(By.cssSelector("#kw"));
        element.sendKeys("selenium");    

    2、通过class属性定位,需要加上标识符 “.”,如:.s_ipt;

        element = driver.findElement(By.cssSelector(".s_ipt"));
        element.sendKeys("selenium");

    3、通过标签属性定位,不需要任何标示符,如:input;

        //这里运行会报错,因为标签“input”不是唯一的;这里主要是了解写法
    element = driver.findElement(By.cssSelector("input"));
    element.sendKeys("selenium");

三、CSS:通过其他属性定位

    1.css除了可以通过标签、class、id这三个常规属性定位外,也可以通过其它属性定位;

    2.以下是定位其它属性的格式;

      1)CSS通过name属性定位元素;

          element = driver.findElement(By.cssSelector("#su"));       element.click(); 

      2)CSS:通过autocomplete属性定位元素;

        element = driver.findElement(By.cssSelector("[autocomplete = ‘off‘]"));
            element.sendKeys("autocomplete");

      3)CSS通过type属性定位元素;

       element = driver.findElement(By.cssSelector("[type = ‘submit‘]"));
           element.click();

四、CSS:标签

   1、css页可以通过标签与属性的组合来定位元素;

     1)CSS通过标签与id属性组合定位元素;

      element =driver.findElement(By.cssSelector("input#kw"));
          element.sendKeys("selenium");

    2)CSS通过标签与class属性定位元素;

       element = driver.findElement(By.cssSelector("input.s_ipt"));
        element.sendKeys("selenium");

    3)CSS通过标签与其它属性组合定位元素;

     element = driver.findElement(By.cssSelector("input[autocomplete = ‘off‘]"));
        element.sendKeys("selenium");

五、CSS:层级关系定位

        //form的id属性        element = driver.findElement(By.cssSelector("form#form>span>input"));
        element.sendKeys("444");
               //form的class属性
        element = driver.findElement(By.cssSelector("form.fm>span>input"));
        element.sendKeys("444");

六、CSS:索引

css也可以通过索引option:nth-child(1)来定位子元素,这点与xpath写法用很大差异;其实很好理解,直接翻译过来就是第几个小孩;

element = driver.findElement(By.cssSelector("select#ft>option:nth-child(1)"));
element.click();
element = driver.findElement(By.cssSelector("select#ft>option:nth-child(2)"));
element.click();
element = driver.findElement(By.cssSelector("select#ft>option:nth-child(3)"));element.click();

CSS定位远远不止以上几种方法,还有更多更强大定位策略,有兴趣的同学可以继续深入研究。

时间: 2024-07-30 22:53:38

【Selenium 3+Java自动化(6)】-CSS定位语法的相关文章

【Selenium 3+Java自动化(4)】-八种元素定位

1 package com.mypro.jase; 2 3 import org.openqa.selenium.By; 4 import org.openqa.selenium.WebDriver; 5 import org.openqa.selenium.WebElement; 6 7 public class FindElement { 8 WebDriver driver; 9 String url = "http://www.baidu.com"; 10 11 /** 12

自动化测试之CSS定位

之前做自动化测试一直用RF框架来操作,发现了明显与unittest的灵活性相差一点. 重新温习了unittest框架,其中这个框架,元素定位是难点,以前更多的使用JQUERY方式定位, 发现其实与CSS定位很相近,有很多共通之处. 今天顺便来复习一下.以前XPATH定位用的也比较多.但图方便之时,很少自己去定位,直接用工具了. 多话不说了,CSS定位总体上有几种, 一,通过元素属性来定们, 例子:driver.find_element_by_css_selector(".class")

【Selenium 3+Java自动化(5)】-xpath定位

package com.mypro.jase; import java.net.URL; import java.security.cert.PKIXRevocationChecker.Option; import java.util.concurrent.TimeUnit; import javax.xml.bind.annotation.XmlID; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; im

selenium+python自动化之CSS定位

一.css:属性定位 1.css可以通过元素的id.class.标签这三个常规属性直接定位到 2.如下是百度输入框的的html代码: <input id="kw" class="s_ipt" type="text" autocomplete="off" maxlength="100" name="wd"/> 3.css用#号表示标签属性,如:#kw 4.css用.表示clas

Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析

加速IE浏览器自动化执行效率:Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 1.技术背景       在Web应用中,用户通过键盘在输入框中输入值和鼠标点击按钮,链接等.比如在用户名输入框和密码输入框输入正确的用户名和密码,然后点击登录按钮进行登录.在Selenium自动化中,Selenium提供多种API来对HTML元素进行操作,对于每个HTML元素,需要一个可以标识它的标识符,在Selenium中称之为定位器,Selenium支持多种不同类型的定位器,有标

selenium自动化测试之元素定位三(css定位)

1.1 CSS定位 1.1.1 绝对路径定位 目标 查找第一个文本为“猜猜看”的a标签 实现 CSS表达式 html>body>div>a[.=”猜猜看”] python表达式 driver.find_element_by_css_selector(‘html>body>div>a[.=”猜猜看”]’) 1.1.2 相对路径定位 目标 查找第一个文本为“猜猜看”的a标签 实现 CSS表达式 a[.=”猜猜看”] Python表达式 driver.find_element

selenium+python自动化之元素定位

自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. 万物皆对象,所谓的对象,就是你喜欢的那个女神,她就是你的对象.既然是对象,她就有属性,比如眼睛大,头发长,皮肤白,颜值高.这些都是她的属性,每个属性又有对应的属性值,如眼睛="大",头发="长",颜值="高",对应的=后面就是它的属性的值. 同样的道

Selenium2+python自动化9-CSS定位语法

前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css的定位方法,主要是对比上一篇的xpath来的,基本上xpath能完成的,css也可以做到.两篇对比学习,更容易理解. 一.css:属性定位 1.css可以通过元素的id.class.标签这三个常规属性直接定位到 2.如下是百度输入框的的html代码: <input id="kw" c

selenium入门:css定位

Selenium极力推荐使用css定位,而不是XPath来定位元素,原因是css定位比XPath定位速度快,语法也更加简洁. css常用定位方法 1.find_element_by_css_selector() 2.#id  id 选择器根据id属性来定位元素 3. .class   class选择器,根据class属性值来定位元素 4. [attribute='value'] 根据属性来定位元素 5.element>element 根据元素层级来定位   父元素>子元素 例子: from s