UI自动化测试(Selenium元素定位实战)
一、Selenium环境搭建
1、进入命令符
2、输入pip3 install selenium 下载selenium
3、查看浏览器的版本 (打开chrome,设置,关于chrome)

4、淘宝源http://npm.taobao.org/mirrors/chromedriver下载版本合适的driver

5、解压到Python目录下
双击chromedriver.exe 看是否能打开


6、进入命令
7、进入python
8、>>> from selenium import webdriver
>>> driver=webdriver.Chrome()
9、看是否能打开Chrome()
10、driver.quit() 关闭
二、Selenium元素定位的八种方法
1、通过ID来定位(打开chrome,百度,右击点击检查,点击
,将鼠标移动到需要定位的目的位置,就会显示元素的属性)

from selenium import webdriver from selenium.webdriver.common.by import By import time as t """通过id来定位""" driver=webdriver.Chrome() driver.get("http://www.baidu.com") driver.find_element_by_id("kw").send_keys("Hello World") t.sleep(5)
2、通过name来定位
from selenium import webdriver from selenium.webdriver.common.by import By import time as t """通过name来定位""" driver=webdriver.Chrome() driver.get("http://www.baidu.com") driver.find_element_by_name("wd").send_keys("Hello World") t.sleep(5)
3、通过class-name来定位
from selenium import webdriver from selenium.webdriver.common.by import By import time as t class_name来定位 driver=webdriver.Chrome() driver.get("http://www.baidu.com") driver.find_element_by_class_name("s_ipt").send_keys("Hello World") t.sleep(5)
4、通过xpath来定位(首先获取xpath的原始属性,定位到百度搜索输入框的元素属性后,右击该属性,点击Copy,点击Copy Xpath 即可获取)

from selenium import webdriver from selenium.webdriver.common.by import By import time as t """xpath来定位""" driver=webdriver.Chrome() driver.get("http://www.baidu.com") driver.find_element_by_xpath('//*[@id="kw"]').send_keys("Hello World") t.sleep(5)
5、通过css来定位(首先获取css的原始属性,定位到百度搜索输入框的元素属性后,右击该属性,点击Copy,点击Copy selector即可获取)

from selenium import webdriver from selenium.webdriver.common.by import By import time as t """css定位""" driver=webdriver.Chrome() driver.get("http://www.baidu.com") driver.find_element_by_css_selector('#kw').send_keys("Hello World") t.sleep(5)
6、LINK_TEXT用于对超链接的处理
from selenium import webdriver from selenium.webdriver.common.by import By import time as t """LINK_TEXT""" driver=webdriver.Chrome() driver.get("http://www.baidu.com") driver.find_element_by_link_text('直播').click() t.sleep(5)
7、PARTIAL_LINK_TEXT用于对超链接的处理
from selenium import webdriver from selenium.webdriver.common.by import By import time as t """PARTIAL_LINK_TEXT""" driver=webdriver.Chrome() driver.get("http://www.baidu.com") driver.find_element_by_partial_link_text('学术').click() t.sleep(5)
8、find_elements_by_tag_name多元素定位

from selenium import webdriver from selenium.webdriver.common.by import By import time as t """tag_name 演示多个元素的定位""" driver=webdriver.Chrome() driver.get("http://www.baidu.com") tag=driver.find_elements_by_tag_name('input')
tag[7].send_keys('无涯教育') t.sleep(5) driver.quit()
三、元素定位方法的案例实战
from selenium import webdriver from selenium.webdriver.common.by import By import time as t ""sina邮箱的注册信息""" driver=webdriver.Chrome() # 浏览器最大化 driver.maximize_window() driver.get("https://mail.sina.com.cn/register/regmail.php") # 邮箱地址 driver.find_element_by_class_name("inputStyle").send_keys("wuyikai") t.sleep(3) driver.find_element_by_name("psw").send_keys("123456") t.sleep(3) driver.find_element_by_name("npsw").send_keys("123456") t.sleep(3) driver.find_element_by_name("phonenumber").send_keys("15730996037") t.sleep(3) driver.quit()
from selenium import webdriver from selenium.webdriver.common.by import By import time as t """网易邮箱的注册信息""" driver=webdriver.Chrome() driver.maximize_window() driver.get("https://mail.163.com/register/index.htm?from=163mail&utm_source=163mail") driver.find_element_by_class_name("username").send_keys("wuyikai") t.sleep(3) driver.find_element_by_id("password").send_keys("123456") t.sleep(3) driver.find_element_by_class_name("phone").send_keys("15730996037") t.sleep(3) driver.quit()

四、结合函数对元素定位方法封装
1、ID
from selenium import webdriver from selenium.webdriver.common.by import By import time as t def ID(driver,content): return driver.find_element_by_id(content) driver=webdriver.Chrome() driver.get('http://www.baidu.com') ID(driver,"kw").send_keys('测试课程') t.sleep(5) driver.quit()
2、name
from selenium import webdriver from selenium.webdriver.common.by import By import time as t def name(driver,content): return driver.find_element_by_name(content) driver=webdriver.Chrome() driver.get('http://www.baidu.com') name(driver,"wd").send_keys("测试测试") t.sleep(5) driver.quit()
3、class_name
from selenium import webdriver from selenium.webdriver.common.by import By import time as t def className(driver,content): return driver.find_element_by_class_name(content) driver=webdriver.Chrome() driver.get('http://www.baidu.com') className(driver,"s_ipt").send_keys("测试课程") t.sleep(5) driver.quit()
4、xpath
from selenium import webdriver from selenium.webdriver.common.by import By import time as t def xPath(driver,content): return driver.find_element_by_xpath(content) driver=webdriver.Chrome() driver.get('http://www.baidu.com') xPath(driver,'//*[@id="kw"]').send_keys("测试课程") t.sleep(5) driver.quit()
5、css
from selenium import webdriver from selenium.webdriver.common.by import By import time as t def css_selector(driver,content): return driver.find_element_by_css_selector(content) driver=webdriver.Chrome() driver.get('http://www.baidu.com') css_selector(driver,'#kw').send_keys("测试课程") t.sleep(5) driver.quit()
6、LINK_TEXT
from selenium import webdriver from selenium.webdriver.common.by import By import time as t def link_text(driver,content): return driver.find_element_by_link_text(content) driver=webdriver.Chrome() driver.get('http://www.baidu.com') link_text(driver,'直播').click() t.sleep(5) driver.quit()
7、PARTIAL_LINK_TEXT
from selenium import webdriver from selenium.webdriver.common.by import By import time as t def PARTIAL_LINK_TEXT(driver,content): return driver.find_element_by_partial_link_text(content) driver=webdriver.Chrome() driver.get('http://www.baidu.com') PARTIAL_LINK_TEXT(driver,'直播').click() t.sleep(5) driver.quit()
8、tag_name
from selenium import webdriver from selenium.webdriver.common.by import By import time as t def tagsName(driver,content,index): return driver.find_elements_by_tag_name(content)[index] driver=webdriver.Chrome() driver.get('http://www.baidu.com') tagsName(driver,'input',7).send_keys('测试课程') t.sleep(5) driver.quit()
五、webdriver的浏览器属性的方法应用
获取测试地址:current_url
获取页面源码:Page_source
获取当前的title:Title
前进和后退:back() forward()
关闭:exit() close()
加载测试地址:get()
from selenium import webdriver from selenium.webdriver.common.by import By import time as t """webdriver操作浏览器的属性""" driver=webdriver.Chrome() driver.get("http://www.baidu.com") print("获取当前的地址:",driver.current_url) print("获取title:",driver.title) print("获取当前页面的源码:",driver.page_source) t.sleep(5) driver.get("http://www.sina.com.cn/") t.sleep(5) driver.forward() t.sleep(5) driver.back() t.sleep(5) print("获取执行的浏览器:",driver.name) driver.quit()

浙公网安备 33010602011771号