Selenium自动化 01 之8种元素定位及安装

目录

一,selenium安装(我使用编译器是pycharm)

1,安装 python

2,导入库

3,安装浏览器驱动

4,最重要的一点

二,selenium 8大元素定位

1,元素定位方式

1)ID定位     

2)Name定位

3) Tag定位

4)Class定位

5) Link_text(通过完整文本内容)

6)Partial_link_text 定位 (通过部分文本定位)

7)XPath 定位

8)CSS_selector定位

2,定位

1)如何去定位

2)如何使用Xpath定位


一,selenium安装(我使用编译器是pycharm)

1,安装 python

官网:下载地址

2,导入库

通过pip install selenium 导入selenium 这个库

3,安装浏览器驱动

建议安装谷歌驱动,在这之前必须安装谷歌浏览器,下载网址失效了,建议去b站找一下安装教学!

4,最重要的一点

将下载好的浏览器驱动放在步骤1下载的python编译器所在文件夹里。具体位置:

e5ea3aaf5e74476aa49220147db360d0.png

4c63e0bd60a74533b9550239d8efd182.png

二,selenium 8大元素定位

1,元素定位方式

2532a4ddd51243bc95f6ec41ee65a25c.png

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进行定位,如下

8712d2024b9d43d2b0efc725b0f91e5d.png

 <input> 标签里面有name标签,也有id标签,对于这种情况我们优先选择id定位,原因是网页的id=“tab0” 基本只能有一个叫这个名字,要是不唯一说明这个网页有点low

其实我们也能F12进入开发者模式,再快捷键Ctrl + F,然后输入id名判断有多少个,或者name!

3cb81d2f5bc04eb9bbc06b2ac0f8ea34.png

 如果尝试一下用name里面的tab搜索

 15e1f10e1d6b43aab47a9723ede56d7d.png

 可以看到name=‘tab’有3个标签有,如果使用这种方式会定位到3个标签,不便于元素定位!

要是唯一的话也能使用这种方式!

但是我习惯用Xpath的方式去定位!我感觉了解了会很方便!

总而言之有id用id,或者其他的也唯一,否则能Xpath基本能够解决!

2)如何使用Xpath定位

1,绝对定位

/ 开头是绝对路径,不建议使用,要是网页结构变化它就没用了

形式:/html/body/div[3]/div[1]/div[1]

进入开发者模式后,找到想要的标签,然后鼠标右键Copy如下图:

63f9d35778ad4ccc8d6a30ba6ed22a04.png

 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种组合定位那里只是一种格式,就跟物理数学一样,找到该代哪个数,就直接代入公式!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

致奋斗的自己

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值