go selenium的ByCSSSelector 选择器

go selenium的ByCSSSelector 选择器
使用规则按照 CSS selector选择器来过滤
css selector部分参考 
https://www.cnblogs.com/clarke157/p/6432546.html
https://blog.csdn.net/hou_angela/article/details/80519718

CSS选择器的常见语法:
#						通用元素选择器,匹配任何元素
E						标签选择器,匹配所有使用E标签的元素
.info					class选择器,匹配所有class属性中包含info 的元素
#footer					id选择器,匹配所有id属性等于footer 的元素
E,F						多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔
EF						后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用空格分隔
E>F						子元素选择器,匹配所有E元素的子元素F .
E+F						毗邻元素选择器,匹配紧随E元素之后的同级元素F (只匹配第一个)
E~F						同级元素选择器,匹配所有在E元素之后的同级F元素
E[att='val]				属性att的值为val的E元素(区分 大小写)
E[att^='val']			属性att的值以val开头的E元素(区分大小写)
E[att$="val']			属性att的值以val结尾的E元素(区分大小写)
E[att*='val']			属性att的值包含val的E元素(区分 大小写)
E[attl='v1'][tt2*='v2']	属性att1的值为v1, att2 的值包含v2 (区分大小写)
E:contains(xxxx')		内容中包含XXXx的E元素
E:not(s)				|匹配不符合当前选择器的任何元素


示例:
<div class="subdiv">
	<ul id="recordlist">
	<p>Heading</p>
		<l>Cat</li>
		<li>Dog</li>
		<li>Car</1i>
		<li>Goat</l>
	</ul>
</div>

匹配示例:
locator					匹配到的示例
u1>li:nth(0)			<1i>Cat</li>
ul>*:nth(0)				<p> Heading</p>
ul>:nth(0)				<p> Heading</p>
u1>li:first				<li>Cat</li>
ul>:first				<p> Heading</p>
ul>*:last				<1i>Goat</i>
ul>li:last				<1i>Goat</i>
ul>li:even				Cat, Car
ul>li:odd				Dog, Goat
ul>:even				<p> HeadingS/p>
ul>p:odd				[error] not found
ul>li:1t(2)				<1i>Cat</li>
ul>li:gt(2)				<1i>Goat</Ii>
ul>li:only-child		[error] not found (u1没有only child)
ul>:only-child			[error] not found (u1没有only child)
ul>*:only-child			[error] not found (u1没有only child)
div.subdiv>:only-child	<ul id="recordlist"></ul>

go使用selenium ByCSSSelector 的格式
web2.FindElement(selenium.ByCSSSelector,"u1>li:nth(0)")
web2.FindElement(selenium.ByCSSSelector,"ul>*:nth(0)")
web2.FindElement(selenium.ByCSSSelector,"ul>:nth(0)")
web2.FindElement(selenium.ByCSSSelector,"u1>li:first")
web2.FindElement(selenium.ByCSSSelector,"ul>:first")
web2.FindElement(selenium.ByCSSSelector,"ul>*:last")
web2.FindElement(selenium.ByCSSSelector,"ul>li:last")
web2.FindElement(selenium.ByCSSSelector,"ul>li:even")
web2.FindElement(selenium.ByCSSSelector,"ul>li:odd")
web2.FindElement(selenium.ByCSSSelector,"ul>:even")
web2.FindElement(selenium.ByCSSSelector,"ul>p:odd")
web2.FindElement(selenium.ByCSSSelector,"ul>li:1t(2)")
web2.FindElement(selenium.ByCSSSelector,"ul>li:gt(2)")
web2.FindElement(selenium.ByCSSSelector,"ul>li:only-child")
web2.FindElement(selenium.ByCSSSelector,"ul>:only-child")
web2.FindElement(selenium.ByCSSSelector,"ul>*:only-child")
web2.FindElement(selenium.ByCSSSelector,"div.subdiv>:only-child")

其他的一些CSS selector选择器
#input 选择id为input的节点
.Volvo 选择class为Volvo的节点
div#radio>input 选择id为radio的div下的所有的input节点
div#radio input 选择id为radio的div下的所有的子孙后代input节点
div#radio>input:nth-of-type(4) 选择id为radio的div下的第4个input节点
div#radio>nth-child(1) 选择id为radio的div下的第1个子节点
div#radio>input:nth-of-type(4)+label 选择id为radio的div下的第4个input节点之后挨着的label节点
div#radio>input:nth-of-type(4)~labe 选择id为radio的div下的第4个input节点之后的所有label节点
input.Vovlo[name='identity'] 选择class为.Volvo并且name为identity的input节点
input[name='identity'][type='radio']:nth-of-type(1) 选择name为identity且type为radio的第1个input节点
input[name^='ident'] 选择以ident开头的name属性的所有input节点
input[name$='entity'] 选择以'entity'结尾的name属性的所有input节点
input[name*='enti'] 选择包含'enti'的name属性的所有input节点
div#radio>*.not(input) 选择id为radio的div的子节点中不为input的所有子节点
input:not([type='radio']) 选择input节点中type不为radio的所有节点

Guess you like

Origin blog.csdn.net/liao__ran/article/details/120850850
Recommended