实际的项目实践中,个人更多偏向使用CSS定位,因为它可选择的方向最多,处理复杂的环境能力较强,熟悉几种常用格式后基本可以处理工作中出现的大部分需求。
以下整理自己使用较多的几种定位格式:
1.嵌套关系的某个元素
<div class="123">
<div class="info">..< /div>
</div>
代码: css = div.123>div.info
2.定位div父元素下的第4个div类型的子元素:
<div class="123456">
::before
<span class="ac">xxxx</span>
<div class="xxxxx">..</div>
<div class="aaaaa"> <--------//定位这个一个元素,按顺序是第四个,但指针要取3
<em></em>
</div>
</div>
代码: css = div.123456>div:nth-child(3)
# 3.定位某个标签,按具体的属性值查找
<input type="file" id="pic123">
代码1: css = input[type=file][id=pic123]
也可以用代码2: css = input[type=^fi][id=^pic]
# 4.多个css属性
<a class="nav_btn nav_fff" herf="....">登录</a>
css = .nav_btn.nav_fff
例:driver.find_element_by_css_selector('.nav_btn.nav_fff')