CSS元素定位

Css的定位比较灵活,因为他它用到的更多的匹配符和规格。
下面主要通过举例来说明
具体可见w3school链接
【举例1】虫师文章中的一个例子,元素如下:
<form id="form1" class="fm" action="/s" name="f1">

<span class="bg s_ipt_wr">

<input id="kw1" class="s_ipt" type="text" maxlength="100" name="wd" autocomplete="off">

那么定位分别如下:

1.  id定位:    css=#kw1

2.  class定位:css=.s_ipt

3.  单个属性定位:css=[name=wd]        css=[type=text]     
css=[autocomplete=off]

4.  多个属性定位:css=[#form1 input[name=text]]

5.  父子定位:

css=span > input

css=form > span > input

6.  根据标签名定位:

css=input

【举例2】

image

想要定位到某个元素的话,首先应该考虑这个元素有没有唯一属性,例如id。

如果没有唯一属性的话,再考虑从这个元素的父元素、祖宗元素、隔壁元素中找到唯一属性,然后再定位到这个元素(参考)。

//通过有唯一属性的父元素,向下定位到目标元素。注意"空格"和">"的区别

css ="li[data-sku='13435315793'] .p-img>a"

这样一来,不管这个数据的位置如何改变,只要改商品的标志,即13435315793不变,测试用例都不需要额外的维护了。

【举例3】

image

2种定位方式

css=.footer-link .stop (class=footer-link元素内的所有class=stop的元素。如果stop只有1个的话,那么直接css=.stop也可以 )

xpath=//a[text()="停止投放"]' 文本等于“停止投放”的所有链接a元素

对于有子元素的,可以使用元素:nth-child(n)表示:

image

css=#ershou .category-group a:nth-child(2)

image
image

【举例5】
定位元素原为
<select class="input input-6 placeholder" name="品牌">
<option value=""></option>
<optgroup label="--A--">
<option value="m183754">奥驰汽车</option></optgroup>

屏幕快照 2018-05-21 上午11.43.03.png

css定位奥驰汽车
css=select[name=品牌] optgroup[label=--A--] option:nth-child(1)

【举例5】


image.png

保洁清洗定位
xpath定位
//*[@id="fuwu"]/ul/li[1]/a[2]

css定位

fuwu .fuwu-subgroup a:nth-child(2)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【本文参考了虫师和测试开发栈文章,仅供个人学习总结使用】 一、问题: 通常情况下,元素定位使用id、name、cl...
    心无旁骛_阅读 2,786评论 0 3
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,816评论 1 92
  • 1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素? 行内元素:和有他元素都在一行上,高度、行高及外...
    极乐君阅读 2,480评论 0 20
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 1,238评论 0 1
  • 好久了,好久了没有怎么去思考自己的人生了。确实如今的自己还是不够成熟,还是会埋没在人群里,还是会听见风来自人海中。...
    于子晨阅读 226评论 0 1