2:selenium元素定位

**

基础定位

**

简单的小例子

百度搜索页,输入框的属性如下图

在这里插入图片描述

from selenium import webdriver #引入驱动模块
import time

driver=webdriver.Firefox() #引入火狐浏览器的驱动
driver.implicitly_wait(10) #引入隐式等待
driver.get("http://www.baidu.com")#请求的url
driver.find_element_by_id("kw").send_keys("python")#根据元素ID属性查找ID,然后输入字符串
time.sleep(1)#页面睡眠等待1S
driver.quit()#退出浏览器窗口

基础定位方法一共有8种
#id定位

driver.find_element("id","kw").send_keys("python")
#下面的方法,必须引入   from selenium.webdriver.common.by import By
driver.find_element(By.ID,"kw").send_keys("python")
driver.find_element_by_id("kw").send_keys("python")
#elements返回的数据结果是满足要求的list列表,取第一个
driver.find_elements("id","kw")[0].send_keys("python")

#name定位

driver.find_element("name", "wd").send_keys("python")
driver.find_element(By.NAME,"wd").send_keys("python")
driver.find_element_by_name("wd").send_keys("python")
driver.find_elements("name", "wd")[0].send_keys("python")

#class定位

driver.find_element("class name", "s_ipt").send_keys("python")
driver.find_element(By.CLASS_NAME,"s_ipt").send_keys("python")
driver.find_element_by_class_name("s_ipt").send_keys("python")

# link text定位

driver.find_element("link text", "hao123").click()
driver.find_element(By.LINK_TEXT,"hao123").click()
driver.find_element_by_link_text("hao123").click()

# partial link text模糊定位

driver.find_element("partial link text", "hao1").click()
driver.find_element(By.PARTIAL_LINK_TEXT,"hao1").click()
driver.find_element_by_partial_link_text("hao1").click()

#xpath定位

driver.find_element("xpath", "/html/body/div[1]/div[1]/div/div[3]/a[2]").click()
driver.find_element(By.XPATH,"/html/body/div[1]/div[1]/div/div[3]/a[2]").click()
driver.find_element_by_xpath("/html/body/div[1]/div[1]/div/div[3]/a[2]").click()

#css定位

driver.find_element("css selector", "#kw").send_keys("python")
driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("python")
driver.find_element_by_css_selector("#kw").send_keys("python")

#tag定位 这个实际工作中,用到的真的很少,故不做详细举例

driver.find_element("tag name", "XXX")
driver.find_element(By.TAG_NAME,"XXX")
driver.find_element_by_tag_name("XXX")

需要了解注意的点

1:如果自动化脚本中对性能有要求,建议使用css定位,该方法定位相比快一些。
2:css定位方法,属性值"#kw"到底怎么取,查看下面的博客(本人学自动化的源泉)
https://www.cnblogs.com/yoyoketang/p/6128580.html

3:用浏览器工具快速拿到元素css或xpath的方法。
用谷歌浏览器。通过定位元素箭头,移动至想要定位的区域。找到对应的页面代码,鼠标右键(你想要的,都在这里)。
在这里插入图片描述
4:本人遇到过,用上面方法,代码里定位不到的情况。那就得自己根据css和xpath的书写规则,自己检查一下。
5:网上相关的定位方法总结太多了,看了一些,觉得这个总结的是比较好的,出处来源于
https://blog.csdn.net/qq_32897143/article/details/80383502#
其中,js定位和jQuery定位,个人是比较推荐的,里面对应了些前端的知识,感兴趣的可以用一下。
6:所有的定位方法,自己在代码中手写练习,这样容易加深记忆。(不要纠结于某个元素必须用X种方法定位,我们注重的是拿到元素和操作它,在不纠结脚本性能的前提,抓到老鼠的就是好猫)
7:后期当你了解到“判断元素”的方法和运用,这些定位元素的方法,都是渣渣,加油,坚持。

最后一点

如果有关于自动化的问题,或者作者粗心大意导致内容有问题,在评论里提出,我会尝试着一起解决下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值