阿里云服务器wordpress建站教程,上海装修公司排名前十名,html5网站修改,秀网站模板1、css属性定位
css选择器策略示例说明#id#telA选择idtelA的所有元素。.class.telA选择 classtelA”的所有元素。[属性名属性值][nametelA]除了id和class属性#xff0c;其他属性的定位格式[attribute][target]选择带有target 属性所有元素。**选择所有元素…1、css属性定位
css选择器策略示例说明#id#telA选择idtelA的所有元素。.class.telA选择 classtelA”的所有元素。[属性名属性值][nametelA]除了id和class属性其他属性的定位格式[attribute][target]选择带有target 属性所有元素。**选择所有元素。
2、css属性值模糊匹配定位
css选择器策略示例说明[attribute^value]a[src^https]选择其src 属性值以https”开头的每个a元素。[attribute$value]a[src$.pdf]选择其src属性以.pdf“结尾的所有a元素。[attribute*value]a[src*abc]选择其src 属性中包含“abc子串的每个a元素。[attribute~value]a[title~flower]定位标签属性title值中有独立flower词汇的节点[attributevalue]a[langen]用于选取带有以指定值开头的属性值的元素。
注意[attribute|value] 该值必须是整个单词比如 langen或者后面跟着连字符比如 langen-us。文章地址https://www.yii666.com/blog/409796.html
3、css标签定位
css选择器策略示例说明elementp定位所有p元素。标签名[属性名属性值]input#telA定位id属性值为telA的所有input元素
4、css层级关系定位
css选择器策略示例说明element,elementdiv,p选择所有 div 元素和所有 p 元素。element elementdiv p选择 div 元素内部的所有 p 元素。包括子孙后代。elementelementdivp选择父元素为 div 元素的所有 p 元素。只包括子代。elementelementdivp选择紧接在 div 元素之后的所有 p 元素。同辈元素。
示例
css选择器策略示例说明需要使用 或 空格表示层级关系语法父标签名[父标签属性名属性值]子标签名p#p1input定位id属性值为p1的input元素父标签名[父标签属性名属性值] 子标签名p#p1 input同上
5、css索引定位
css选择器策略示例说明:only-childp:only-child选择属于其父元素的唯一子元素的每个 p 元素。:nth-child(n)p:nth-child(2)选择属于其父元素的第二个子元素的每个 p 元素。:nth-last-child(n)p:nth-last-child(2)同上从最后一个子元素开始计数。:nth-of-type(n)p:nth-of-type(2)选择属于其父元素第二个 p 元素的每个 p 元素。:nth-last-of-type(n)p:nth-last-of-type(2)同上但是从最后一个子元素开始计数。
6、css逻辑运算定位
css选择器策略逻辑定位示例标签名[属性名1属性值1][属性名2属性值2]示例input[typetelA][placeholder电话A]说明同时匹配多个属性
7、css元素状态定位
选择器例子例子描述:emptyp:empty选择没有子元素的每个 p 元素包括文本节点。:target#news:target选择当前活动的 #news 元素。:enabledinput:enabled选择每个启用的 input 元素。:disabledinput:disabled选择每个禁用的 input 元素:checkedinput:checked选择每个被选中的 input 元素。:not(selector):not(p)选择非 p 元素的每个元素。
七 、总结
如果元素有明确idnameclass属性时使用对应的基本定位方法。如果没有idnameclass属性时或idnameclass属性是动态/不唯一的时候使用XPath和css_selector定位。定位页面超链接使用link_text和partial_link_text定位可使用XPath和css_selector定位的时候优先使用css_selector。css_selector定位的速度和效率比Xpath高。没有最好的只有最精简的怎么简单怎么来。
扩展为什么css_selector定位的速度和效率比Xpath高? 因为你无论用那种方式定位最终都会转换到css_selector进行元素定位。 我们可以在PyCharm中安装ctrl点击对应的方法进行查看源码最终都会定位到如下代码 def find_element(self, byBy.ID, valueNone):Find an element given a By strategy and locator. Prefer the find_element_by_* methods whenpossible.:Usage:element driver.find_element(By.ID, foo):rtype: WebElementif self.w3c:if by By.ID:by By.CSS_SELECTORvalue [id%s] % valueelif by By.TAG_NAME:by By.CSS_SELECTORelif by By.CLASS_NAME:by By.CSS_SELECTORvalue .%s % valueelif by By.NAME:by By.CSS_SELECTORvalue [name%s] % valuereturn self.execute(Command.FIND_ELEMENT, {using: by,value: value})[value]