赞
踩
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")
以上就是针对八大元素定位的总结,可以根据实际情况使用元素定位方式,从脚本的稳定性考虑,定位到的元素尽量只有唯一的一个。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。