Python实践之八大定位方式

1、定位元素第一步,浏览器中按F12,打开开发者调试工具

2、定位元素第二步,实例化浏览器,打开浏览器地址,最大化浏览器窗口

from selenium import webdriver
from selenium.webdriver.common.by import By


driver=webdriver.Chrome()  #实例化浏览器

url='http://xxx.testedu.com/'

driver.get(url)

driver.maximize_window()

3、定位元素第三步,定位元素原理

寻找元素,html中的标签或则标签中的属性,通过元素的路径来寻找类似于文件夹中通过文件路径来寻找文件,通过元素的属性来寻找类似于通过文件类型或则名称来寻找文件。

4、定位元素第四步,八大元素定位方式

"""
八大元素定位
ID='id'
XPATH='xpath'
LINK_REXT='link text'
PARTIAL_LINK_TEXT='partial link text'
NAME='name'
TAG_NAME='tag name'
CLASS_NAME=’class name‘
CSS_SELECTOR='css selector'
"""
#link_text,方式一

ele1=driver.find_element(By.LINK_TEXT,'登录')
ele1.screenshot('截图/link_text登录链接截图.png')

#partial_link_text,方式二
ele2=driver.find_element(By.PARTIAL_LINK_TEXT,'注册')
ele2.screenshot('截图/partial_link_text注册截图.png')



#name,方式三
ele3=driver.find_element(By.NAME,'wd')
ele3.screenshot('截图/name输入框元素截图.png')

#tag_name,方式四
ele4=driver.find_element(By.TAG_NAME,'button')
ele4.screenshot('截图/tag_name搜索按钮元素截图.png')

#找多个元素,find_elements,tag_name

eles=driver.find_elements(By.TAG_NAME,'a')  #find_elements返回多个元素

eles[24].screenshot('截图/tag_name多个元素定位截图.png')

#class_name,方式五
ele5=driver.find_elements(By.CLASS_NAME,'am-btn')
ele5[0].screenshot('截图/class_name搜索按钮截图.png')

#xpath,方式六  路径定位,相对路径/绝对路径,通过路径定位到3个,find_element默认返回第一个,a为标签,href为标签属性,用@来表示标签内的属性

ele6=driver.find_element(By.XPATH,'//a[@href="http://xxx.testedu.com/index.php?s=/index/user/logininfo.html"]')
#ele6=driver.find_element(By.XPATH,'//a[text()="登录"]')
#ele6=driver.find_element(By.XPATH,'html/body/div/div/ul/div/div/a[text()='登录']')
ele6.click()


#css_selector, 方式七 .表示申明的是css(即class属性),#表示申明id属性
#ele7=driver.find_element(By.CSS_SELECTOR,'.submit.am-btn>i.am-icon-search')
#ele7=driver.find_element(By.CSS_SELECTOR,'html>body>div>div>ul>div>div.menu-hd>a')
ele7=driver.find_element(By.CSS_SELECTOR,'button#ai-topsearch')
ele7.screenshot('截图/css定位搜索按钮.png')


#id,通过id定位,方式八
ele8=driver.find_element(By.ID,"ai-topsearch")
ele8.screenshot('截图/id定位搜索按钮.png')


#4.0以上版本特有的元素定位方法,网格定位,locate_with,to_right_of,to_left_of,near

ele9=driver.find_element(locate_with(By.TAG_NAME,"a").to_right_of(ele6))  #网格定位登录元素右边的注册元素
ele9.click()

5、定位元素第五步,定位元素后生成截图,并保存到固定文件夹

driver.get_screenshot_as_png()  #浏览器的截图


#生成截图的保存

ele=driver.find_element(By.ID,'search-input')  #寻找元素

ele.screenshot("截图/搜索框.png")  #元素的截图保存,保存在脚本文件夹下

ele.screenshot("../截图文件夹/搜索框.png")  #相对路径元素的截图保存,保存在指定的文件夹下

保存在脚本文件夹下图片示例:

 

保存在指定文件夹下图片示例

 6、定位元素第六步,元素内寻找元素

ele10=driver.find_element(By.ID,"ai-topsearch")  #寻找元素

ele11=ele10.find_element(By.CSS_SELECTOR,".am-icon-search") #元素内寻找元素

ele11.screenshot("截图/元素内寻找元素搜索按钮图标.png")

以上就是针对八大元素定位的总结,可以根据实际情况使用元素定位方式,从脚本的稳定性考虑,定位到的元素尽量只有唯一的一个。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值