样式选择器cssSelect元素定位

(1)根据tagName---标签的名字------------By.cssSelector("input")

        openBrowser("chrome");
        driver.get("http://www.baidu.com");
        // input框输入关键字
        List Elements = driver.findElements(By.cssSelector("input"));
        //找到多个input,如何定位自己要的input
            //通过索引---自己数是第几个---一般不用这种方式去定位
    }


一般找到多个值,就不用这种方式去定位(后续会讲到xpath)

(2) 根据ID---标签属性id的属性值
两种写法:
1.By.cssSelector("#ID属性值");//仅使用#id
2.By.cssSelector("input#kw");//使用html标签拼上#id

         // 找到input框后输入搜索关键字
        driver.findElement(By.cssSelector("#kw")).sendKeys("腾讯课堂");
        driver.findElement(By.cssSelector("input#kw")).sendKeys("腾讯课堂");

总结:1 这里是根据ID的属性值来定位(属性值要唯一)
2 属性值前面要加#号,仅代表根据id属性来定位

driver.findElement(By.cssSelector("#wd")).sendKeys("腾讯课堂");

上面这段代码就会报错,找不到元素,wd是name的属性值,但是#会把它当作是根据id的属性值,而id的属性值不是wd,所有定位不到元素

(3)根据className(样式名).class形式
两种写法:
1.By.cssSelector(".className");//class属性值前面加点
2.By.cssSelector("input.className");//标签拼上样式

           // input框输入关键字
        driver.findElement(By.cssSelector("input#kw")).sendKeys("腾讯课堂");
        //定位到百度一下按钮,点击
        //driver.findElement(By.cssSelector(".bg.s_btn")).click();
        driver.findElement(By.cssSelector("input.bg.s_btn")).click();


这里要注意:
(1)百度首页如果是 登录状态,百度一下的input框class属性值和未登录状态下,class属性值是不一样的,而selenium每次打开是一个全新的浏览器(未登陆,无缓存)
(2)class属性值前面要加点

(4)Css精确定位
根据元素属性,属性名=属性值,id,class等都可 写成这种形式
By.cssSelector("标签名[属性名='属性值']");

只能适应web

你可能感兴趣的:(样式选择器cssSelect元素定位)