目录
6)Partial_link_text 定位 (通过部分文本定位)
一,selenium安装(我使用编译器是pycharm)
1,安装 python
官网:下载地址
2,导入库
通过pip install selenium 导入selenium 这个库
3,安装浏览器驱动
建议安装谷歌驱动,在这之前必须安装谷歌浏览器,下载网址失效了,建议去b站找一下安装教学!
4,最重要的一点
将下载好的浏览器驱动放在步骤1下载的python编译器所在文件夹里。具体位置:
二,selenium 8大元素定位
1,元素定位方式
1)ID定位
find_element(By.ID,"kw") # kw是网页前端web html里面的id
不知道为什么我的pycharm没有 find_element_by_id() 这种定位方法!
但是这种通用的方式更能让人接受,也便于封装,就仅仅是里面的值不一样!
2)Name定位
find_element(By.NAME,"kw")
由于格式都一样我就省略下面的了!
3) Tag定位
4)Class定位
5) Link_text(通过完整文本内容)
6)Partial_link_text 定位 (通过部分文本定位)
7)XPath 定位
8)CSS_selector定位
2,定位
1)如何去定位
id或name定位,找到网页原码的id或name进行定位,如下
<input> 标签里面有name标签,也有id标签,对于这种情况我们优先选择id定位,原因是网页的id=“tab0” 基本只能有一个叫这个名字,要是不唯一说明这个网页有点low
其实我们也能F12进入开发者模式,再快捷键Ctrl + F,然后输入id名判断有多少个,或者name!
如果尝试一下用name里面的tab搜索
可以看到name=‘tab’有3个标签有,如果使用这种方式会定位到3个标签,不便于元素定位!
要是唯一的话也能使用这种方式!
但是我习惯用Xpath的方式去定位!我感觉了解了会很方便!
总而言之有id用id,或者其他的也唯一,否则能Xpath基本能够解决!
2)如何使用Xpath定位
1,绝对定位
/ 开头是绝对路径,不建议使用,要是网页结构变化它就没用了
形式:/html/body/div[3]/div[1]/div[1]
进入开发者模式后,找到想要的标签,然后鼠标右键Copy如下图:
2,相对定位
// 开头是是相对定位
可以使用后台给的,就是上面的Copy XPath
形式://*[@id="tip-left-top"]
这玩意可以自己写!
// 的意思就是在这个网页原码下
//div 的意思就是查找这个网页原码下所有div,// +标签名
[1] 代表第一个这个标签
@ 是接属性名组合,如@class,查找标签里的class属性
starts-with 是匹配开头,看开头能不能对上
substring 是匹配结尾,看结尾能不能对上
contains 是包含,看是否包含该字符名
所以下面就上正题(以找class标签为例)
(1)相对入径+索引定位
//form/span[1]/input
(找到form标签下面的span,且span得是第一个,然后再找到它里面的input)
(2)相对路径+属性定位
//input[@class=' abc ']
(3)相对入径+通配符定位
//*[@class=' abc ']
//*[@*= ' abc ']
(*代表所有,意思是在整个网页下找到内容为abc)
(4)相对入径 +部分属性值定位
以开头://*[starts-with(@class , 'abc ')]
以结尾://*[substring(@class,2)='bc']
包含://*[contains(@class,'b')]
(5)相对入径+文本定位
//span[text()='按图片搜索']
能使用其他属性定位就不用用class,因为class很容易重名,如果是只找一个不建议,但偶尔能用!
但是找一堆公共属性的内容时,class无疑是最好的选择!
上面的Xpath5种组合定位那里只是一种格式,就跟物理数学一样,找到该代哪个数,就直接代入公式!