`

CSS选择器定位元素详解

 
阅读更多
CSS是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
CSS选择器有如下几种方式定位页面元素:
a、使用绝对路径定位元素(不推荐)
例:
WebElement ele = driver.findElement(By.cssSelector("html body div form input"));

b、使用相对路径定位元素
例:(如果一个页面存在多个input,则下面代码将返回找到的第一个input,如果存在多个相同标签可以使用List,他将返回所有包含该标签的list集合)
WebElement ele = driver.findElement(By.cssSelector("input"));

c、使用相对ID选择器定位元素
例:
WebElement ele = driver.findElement(By.cssSelector("input#idName"));

d、使用属性定位元素
例:
WebElement ele = driver.findElement(By.cssSelector("input[id=idName]"));

e、使用属性名称(注意,只是属性的名称)定位元(注:此功能已无效,具体见下方程序)
例:(下面例子表示找到所有input标签中含有love属性的元素- =!)
WebElement ele = driver.findElement(By.cssSelector("input[love]"));

f、部分属性值的匹配定位元素
^= 例:input[id^='love'] 如果一个元素的id是以love开头的则会被找到(id=love_you)
$= 例:input[id$='love'] 如果一个元素的id是以love结尾的则会被找到(id=you_love)
*= 例:input[id*='love'] 如果一个元素的id包含love则会被找到(id=love_you,id=love_her,id=beilove,id=TMD_love_haha……)

依旧以百度首页为例(百度TM作用就是做测试用):
程序清单如下:
/*
 * 示例脚本
 * 脚本功能:熟练掌握CSS选择器定位元素的方法
 */
package com.test;
import java.util.List;
 
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
 
public class test {
	public static void main(String args[]) throws Exception {
		WebDriver driver = new HtmlUnitDriver();
		//IE浏览器
		//WebDriver driver = new InternetExplorerDriver();
		driver.get("http://www.baidu.com");
		//找到第一个含input标签
		WebElement ele = driver.findElement(By.cssSelector("input"));
		//找到所有含input标签
		List<WebElement> eles = driver.findElements(By.cssSelector("input"));
		//找到含有id属性值为kw的input标签
		WebElement idele = driver.findElement(By.cssSelector("input#kw"));
		//找到含有value属性值为‘百度一下’的input标签
		WebElement valueele = driver.findElement(By.cssSelector("input[value='百度一下']"));
		//找到含有value属性的input标签
		List<WebElement> loveeles = driver.findElements(By.cssSelector("input[class]"));
 
		System.out.println("By.cssSelector(\"input\")-first\t\t:"+ele);
		System.out.println("By.cssSelector(\"input\")-all\t\t:"+eles);
		System.out.println("By.cssSelector(\"input#kw\")\t\t:"+idele);
		System.out.println("By.cssSelector(\"input[value='百度一下']\")\t:"+valueele);
		System.out.println("By.cssSelector(\"input[id]\")\t\t:"+loveeles);
 
		driver.quit();
	}
}

打印结果如下:
By.cssSelector("input")-first			:input type="text" name="wd" id="kw" maxlength="100" class="s_ipt"
By.cssSelector("input")-all			:[input type="text" name="wd" id="kw" maxlength="100" class="s_ipt", input type="hidden" name="rsv_bp" value="0", input type="hidden" name="rsv_spt" value="3", input type="hidden" name="ie" value="utf-8", input type="submit" value="百度一下" id="su" class="bg s_btn" onmousedown="this.className='bg s_btn s_btn_h'" onmouseout="this.className='bg s_btn'"]
By.cssSelector("input#kw")			:input type="text" name="wd" id="kw" maxlength="100" class="s_ipt"
By.cssSelector("input[value='百度一下']")	:input type="submit" value="百度一下" id="su" class="bg s_btn" onmousedown="this.className='bg s_btn s_btn_h'" onmouseout="this.className='bg s_btn'"
By.cssSelector("input[id]")			:[]

分享到:
评论

相关推荐

    python爬虫之css选择器

    ### Python爬虫之CSS选择器详解 #### 一、引言 在进行Web爬虫开发时,高效地从HTML文档中提取所需数据是一项基本而重要的技能。Python作为一门功能强大的编程语言,在网络爬虫领域有着广泛的应用。CSS选择器作为一...

    详解CSS选择器HTML标签

    理解并熟练运用这些CSS选择器,能够帮助开发者更有效地控制网页的样式和布局,提高代码的可维护性和效率。在实际开发中,结合CSS3的更多选择器特性,如伪类、伪元素等,可以创建出更为复杂且富有交互性的网页效果。

    selenium css selector 定位详解

    而CSS选择器(CSS Selector)是Selenium进行页面元素定位的一种非常重要的方式。本文将详细介绍如何使用Selenium配合CSS选择器来进行页面元素的精准定位。 #### 二、CSS选择器简介 CSS选择器是用于匹配文档中的...

    css的选择器

    通过使用CSS选择器,我们可以精确地定位到HTML文档中的元素,并为其应用样式规则。CSS选择器是CSS的核心组成部分之一,它们决定了哪些元素将被样式化。本文档基于W3School的资料进行整理,旨在详细介绍各种类型的CSS...

    第四章 CSS选择器.docx

    【CSS选择器详解】 CSS(Cascading Style Sheets)层叠样式表是用于定义文档样式的语言,主要用于控制网页的布局、颜色、字体等视觉效果。CSS的优势在于它弥补了HTML标记属性在样式定义上的局限性,使得网页设计...

    Jquery css选择器

    ### Jquery CSS选择器详解 #### 一、引言 在网页开发中,CSS选择器是一种强大的工具,用于选择HTML文档中的元素,并应用于样式规则。本文将深入探讨Jquery CSS选择器的重要特性,特别是属性选择器、子选择器以及...

    HTML CSS选择器

    ### HTML CSS选择器详解 #### 一、标签选择器(HTML选择器) **定义与功能:** 标签选择器是最基本的选择器类型之一,它通过指定一个或多个HTML标签来匹配文档中的元素。当CSS样式定义指定了某个HTML标签时,该...

    CSS布局 案例详解

    避免使用过于复杂的布局,减少重绘和回流,使用适当的选择器,合理使用CSS动画,这些都可以提升页面加载速度和用户体验。 总结,CSS布局是构建网页的核心技能,掌握上述知识点能让你更好地驾驭网页设计,实现各种...

    CSS详解教程(基础)

    CSS的基本结构由选择器和声明组成。选择器指向要应用样式的HTML元素,而声明则定义具体的样式规则。例如: ```css p { color: red; font-size: 16px; } ``` 在上述代码中,`p`是选择器,表示对所有段落应用样式,`...

    CSS详解-DIV布局!!

    1. **选择器**:CSS选择器是用于匹配HTML元素并应用样式的规则。例如,`p`选择器匹配所有段落,`.class`选择器匹配具有特定类名的元素,`#id`选择器匹配具有特定ID的元素。 2. **属性与值**:在CSS中,每条规则由一...

    HTML+CSS+JavaScript实用详解

    例如,你可以学习如何使用CSS选择器来定位特定元素,应用样式,或者通过JavaScript操作DOM(Document Object Model)来改变网页内容。此外,还会涉及AJAX(Asynchronous JavaScript and XML)技术,用于异步数据交换...

    css完全使用详解(源代码)下载

    这些选择器是CSS中的基础,掌握它们可以精确地定位并控制页面上的各个元素。 此外,书中会涵盖CSS的盒模型,这是理解元素尺寸和布局的关键。盒模型包括内容区域、内边距、边框和外边距,它们共同决定了元素在页面上...

    csscsscsscsscss

    5. **子代选择器**:使用`&gt;`符号连接两个选择器,表示匹配第一个选择器直接子元素中符合第二个选择器的元素。 ### CSS的盒模型 CSS中的盒模型是理解元素布局的关键。每个元素都被视为一个矩形盒子,它由内容区、内...

    css参考手册及详解

    选择器是CSS中的关键元素,如ID选择器 (#id)、类选择器 (.class) 和元素选择器 (element),它们用于定位HTML文档中的特定部分。属性则决定了选择器的样式,如颜色、字体、大小、布局等。值可以是颜色代码、长度单位...

    CSS选择器种类、优先级与匹配原理详解

    CSS选择器作为CSS规则的一部分,用于选择要应用样式的HTML元素。在处理样式时,了解不同选择器的种类、优先级以及匹配原理是非常关键的,它决定了当发生样式冲突时哪个样式会被应用到元素上。 首先,我们来梳理一下...

    jquery选择器入门详解小案例

    jQuery支持多种CSS选择器,包括基本选择器、层次选择器、属性选择器和类选择器等。这些选择器可以帮助我们更精确地定位到我们需要操作的DOM元素。 1. **基本选择器**: - `$("#id")`:通过ID选择元素,例如`$("#...

    网页样式设计:CSS使用详解

    书中还会涉及CSS选择器的使用,包括基础选择器(如元素选择器、类选择器、ID选择器)、伪类和伪元素,以及更高级的选择器如属性选择器和组合选择器。掌握高效的选择器策略可以提高代码的可读性和维护性。 最后,书...

    CSS完全使用详解

    1. **基本选择器**: 类似于`*`(所有元素)、`#id`(ID选择器)、`.`class(类选择器)、`tagname`(元素选择器)。 2. **组合选择器**: 包括相邻兄弟选择器(`+`)、一般同胞选择器(`~`)、子选择器(`&gt;`)等,用于更精确地选取...

Global site tag (gtag.js) - Google Analytics