python-selenium元素定位技巧
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-selenium元素定位技巧,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2893字,纯文字阅读大概需要5分钟。
内容图文
![python-selenium元素定位技巧](/upload/InfoBanner/zyjiaocheng/615/9aaf57a4a20d427babe6b870ed1e6895.jpg)
selenium元素定位技巧
chrome打开页面右击要定位的元素,选择Inspect(检视),会自动打开并定位到Elements(元素)页面源代码,
右击元素源代码可以选择复制,复制css选择器或XPath或full XPath等;
另外,如有页面跳转,请注意增加一定的延时或智能等待;
selenium元素定位方法分析
find_element_by_xpath("xpath")
准确定位的首选方式
可以直接在chrome中复制XPath,如 //*[@id="kw"]
find_element_by_xpath(r"//*[@id="kw"]")
一般不需要使用full XPath如 /html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input
find_element_by_css_selector
以某度输入框为例
'''
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
'''
# 单属性查找
# 1.用 标签名 定位查找
driver.find_element_by_css_selector("input")
# 2.用 id 属性定位查找
driver.find_element_by_css_selector("kw")
# 3.用 class 属性定位查找
driver.find_element_by_css_selector("s_ipt")
# 4.其他属性定位
driver.find_element_by_css_selector("[name="wd"]")
# 组合属性查找
# 1. 标签名及id属性值组合定位
driver.find_element_by_css_selector("input#kw")
# 2. 标签名及class属性值组合定位
driver.find_element_by_css_selector("input.s_ipt")
# 3. 标签名及属性(含属性值)组合定位
driver.find_element_by_css_selector("input[name="wd"]")
# 4. 标签及属性名组合定位
driver.find_element_by_css_selector("input[name]")
# 5. 多个属性组合定位
driver.find_element_by_css_selector("[class="s_ipt"][name="wd"]")
搜索按钮
'''
<span class="bg s_btn_wr"><input type="submit" id="su" value="百度一下" class="bg s_btn btn_h btnhover"></span>
'''
# 模糊匹配
# 1. class拥有多个属性值,只匹配其中一个时
driver.find_element_by_css_selector("input[class ~= "bg"]")
# 2. 匹配以字符串开头的属性值
driver.find_element_by_css_selector("input[class ^= "bg"]")
# 3. 匹配以字符串结尾的属性值
driver.find_element_by_css_selector("input[class $= "s_btn"]")
# 4. 匹配被下划线分隔的属性值
driver.find_element_by_css_selector("input[class |= "s"]")
# 层级匹配
# 1.直接子元素层级关系,input为span的直接子元素(用 > 表示)
driver.find_element_by_css_selector(".bg.s_btn_wr > input") #class为bg和s_btn_wr 的span标签的子元素input
# 2.只要元素包含在父元素里面,不一定是直接子元素,用空格隔开,如图一所示,form 下面的 span 里面的input
driver.find_element_by_css_selector("#form input") #id是form的form标签里面的input标签
# 3.多级关系
driver.find_element_by_css_selector("#form > span > input") #id是form的form标签下面的span标签的下面的input标签
#其他
p:nth-child(1) # 选择第一个p标签,还可写为 p:first-child
p:nth-last-child(1) # 选择倒数第一个p标签(要保证最后一个标签是p)
p:only-child # 唯一的p标签
find_element_by_id("id_vaule")
直接填入元素的id即可
driver.find_element_by_id("kw")
find_element_by_name("name_vaule")
填入元素的name值
driver.find_element_by_name("wd")
find_element_by_link_text("text_vaule")
只对被a标签包围<a></a>的标签有效
'''
<a class="c-color-gray2" href="http://ir.baidu.com" target="_blank">About Baidu</a>
'''
find_element_by_link_text("About Baidu")
内容总结
以上是互联网集市为您收集整理的python-selenium元素定位技巧全部内容,希望文章能够帮你解决python-selenium元素定位技巧所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。