WEB自动化(JAVA版)——元素定位(cssSelector)

元素定位-cssSelector

  • 根据tagName
    By.cssSelector(“input”);

  • 根据ID
    By.cssSelector(“input#id”);
    By.cssSelector("#id");

  • 根据className(样式名)
    By.cssSelector(".className");
    By.cssSelector(“input.className”);

css精确定位

  • 根据元素属性,属性名=属性值,id,class,等都可写成这种形式
    By.cssSelector(“标签名[属性=‘属性值’]”);
    如:By.cssSelector(“input[name=‘xxx’]”);
  • 多属性
    By.cssSelector(“标签名[属性1=‘属性值’][属性2=‘属性值’]”);

代码示例

查看如下代码第7部分,cssSelector元素定位:

package com.test;

import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;

public class ElementLocate {

	private static ChromeDriver chromeDriver;
	
	public static void main(String[] args) throws InterruptedException {
		openChrome();
		Thread.sleep(1000);
		//1.定位百度的搜索框元素,并且输入数据(ID定位)--唯一的
		//chromeDriver.findElement(By.id("kw")).sendKeys("自动化测试");
		
		//2.定位百度的搜索框元素,并且输入数据(Name定位)--重复
		//chromeDriver.findElement(By.name("wd")).sendKeys("自动化测试");
		
		//3.定位百度的搜索框元素,并且输入数据(tagName定位)--找到的元素是会有多个--不推荐
		//chromeDriver.findElement(By.tagName("input")).sendKeys("自动化测试");
		
		//4.定位百度的搜索框元素,并且输入数据(className定位)
		//chromeDriver.findElement(By.className("s_ipt")).sendKeys("自动化测试");
		//Compound class names not permitted -->复合类名的问题
		//chromeDriver.findElement(By.className("bg s_btn")).click(); //不可以用这样的复合类名
		//chromeDriver.findElement(By.className("s_btn")).click();
		
		//5.定位“新闻”元素,并且点击(LinkText定位)-->超链接完整文本
		//chromeDriver.findElement(By.linkText("新闻")).click();
		
		//6.定位“新闻”元素,并且点击(partialLinkText定位)-->超链接部分文本
		//chromeDriver.findElement(By.partialLinkText("闻")).click();
		
		//7.cssSelector元素定位
		//(1)tagName定位
		//chromeDriver.findElement(By.cssSelector("input"));
		//(2)id定位
		//chromeDriver.findElement(By.cssSelector("#kw")).sendKeys("自动化测试");	
		//(3)className定位
		//chromeDriver.findElement(By.cssSelector(".s_ipt")).sendKeys("自动化测试");	
		//chromeDriver.findElement(By.cssSelector(".bg.s_btn")).click();
		
		//css精确定位
		//chromeDriver.findElement(By.cssSelector("input[maxlength='255']")).sendKeys("自动化测试");
		//css多属性定位
		chromeDriver.findElement(By.cssSelector("input[maxlength='255'][autocomplete='off']")).sendKeys("自动化测试");		
		
	}
	public static void openChrome() {
		System.setProperty("webdriver.chrome.driver", "src/test/resources/chromedriver.exe");
		//1.打开Chrome浏览器
		chromeDriver = new ChromeDriver();
		//2.访问百度
		chromeDriver.get("http://www.baidu.com");
	}
}
发布了64 篇原创文章 · 获赞 2 · 访问量 2762

猜你喜欢

转载自blog.csdn.net/anniewhite/article/details/105338385