上一篇简单地说了八大元素定位,也详细说了xpath定位方式,我也说了用xpath可以解决到一半的元素定位问题,剩下的一半则是可以用css定位解决
下面就让我们来看看这个CSS定位是个什么玩意
此外需要这次知识的视频教程的小伙伴可以点击并输入暗号:CSDN
【appium】appium自动化入门之环境搭建(上)
大部分人在使用 seleniumcss 定位往往被忽略掉了,其实 css 定位也有它的价值,css定位更快,语法更简洁。
这一篇 css 的定位方法,主要是对比上一篇的 xpath 来的,基本上 xpath 能完成的,css 也可以做到。两篇对比学习,更容易查漏补缺。
<input id="kw" class="s_ipt" type="text" autocomplete="off" maxl
ength="100" name="wd"/>
# coding:utf-8
from selenium import webderiver
driver = webderiver.Firefox()
driver.get("https://www.baidu.com")
# css通过id属性定位
driver.find_element_by_css_selector("#kw").send_keys("测试")
# css通过class属性定位
driver.find_element_by_css_selector(".s_ipt").send_keys("测试")
# css通过标签属性定位
driver.find_element_by_css_selector("input").send_keys("测试")
# coding:utf-8
from selenium import webderiver
driver = webderiver.Firefox()
driver.get("https://www.baidu.com")
# css通过name属性定位
driver.find_element_by_css_selector("[name='wd']").send_keys("测试")
# css通过autocomplete属性定位
driver.find_element_by_css_selector("[autocomplet'of']").send_keys("测试")
# css通过type属性定位
driver.find_element_by_css_selector("[type='text']").send_keys("测试")
1.css 页可以通过标签与属性的组合来定位元素
# coding:utf-8
from selenium import webderiver
driver = webderiver.Firefox()
driver.get("https://www.baidu.com")
driver.find_element_by_css_selector("input:contains('kw')")
# css通过标签与class属性的组合定位
driver.find_element_by_css_selector("input.s_ipt").send_keys("测试")
# css通过标签与id属性的组合定位
driver.find_element_by_css_selector("input#kw").send_keys("测试")
# css通过标签与其他属性的组合定位
driver.find_element_by_css_selector("input.[id='kw']").send_keys("测试")
# coding:utf-8
from selenium import webderiver
driver = webderiver.Firefox()
driver.get("https://www.baidu.com")
# css通过层级定位
driver.find_element_by_css_selector("form#form>span>input").send_keys("测试")
# css通过层级定位
driver.find_element_by_css_selector("form .fm>span>input").send_keys("测试")
1.以下图为例,跟xpath一样
2.css 也可以通过索引 option:nth-child(1)来定位子元素,需要注意这点与 xpath 写法用很大差异
# 选择第一个option
driver.find_element_by_css_selector("celect#cn>option:nth-child(1)")click()
# 选择第二个option
driver.find_element_by_css_selector("celect#cn>option:nth-child(2)")click()
...
1.和xpath一样css定位也可以实现逻辑运算,这里和xpath不一样的是需要同事匹配两个属性且无需写 and 关键字
# coding:utf-8
from selenium import webderiver
driver = webderiver.Firefox()
driver.get("https://www.baidu.com")
driver.find_element_by_css_selector("input[id='kw'][name='id']).send_keys('python')"
嗯,这篇好像有点少字数,但是都是技术分享,css定位其实还有更多更强大的定位策略,有兴趣的可以到官方那儿继续深入研究,据官方他们自己的说法:css定位更快,语法更简洁,但是xpath更直观,更好理解一些。
最后的最后点击并输入暗号:CSDN可以领取视频资料哦,辛辛苦苦制作的没人来看吗,呜呜呜>