**
基础定位
**
简单的小例子
百度搜索页,输入框的属性如下图
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:后期当你了解到“判断元素”的方法和运用,这些定位元素的方法,都是渣渣,加油,坚持。
最后一点
如果有关于自动化的问题,或者作者粗心大意导致内容有问题,在评论里提出,我会尝试着一起解决下。