一:selenium 实现ui自动化测试
什么是selenium自动化?使用ui自动化实现代码模拟人的操作。(点击,输入,滑动,下拉选择,浏览)
二:selenium实现环境搭建
pip install selenium==3.14
安装驱动和对应浏览器对应起来。
selenium的定位方法:
三 selenium提供了八种元素定位的方法
id:元素id属性值,如果id 属性唯一,那么就可以定位到,如果id是一串字母或者数值,则不能进行使用。有可能会是动态的id
name 定位:根据name的属性值来定位,但是如果name的属性值在页面不唯一,就无法进行定位。
classname:class 属性对应的值:
tagname:标签名查找,一般使用不了。
link text:模糊定位 ,一般使用不了
xpath: / 代表直接的子节点 , // 后代节点
css selector#根据标签以及标签的属性进行定位
partial link text:一般不要使用
from selenium import webdriver
driver=webdriver.Chrome("C:/Users/baocomputer/tools/chromedriver_win32/chromedriver.exe")
driver.maximize_window()
#打开具体的网页
driver.get("https://www.baidu.com/?tn=65081411_oem_dg")
#元素定位,定为搜索框
#driver.find_element_by_css_selector('input[name="wd"]').send_keys("昕诺飞公司")
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("昕诺飞公司")
driver.find_element_by_xpath("//input[@name='wd']").send_keys("昕诺飞公司")
#driver.find_element_by_css_selector('input[value]').click()
"""
#id定位:
driver.find_element_by_id("id 属性的值")
#name定位
driver.find_element_by_name("name 属性值")
#class name 定位
driver.find_element_by_class_name("class 属性值")
# tagname 定位
driver.find_element_by_tag_name("tag 属性值")
#link_text定位
driver.find_element_by_link_text("文本查询")
#xpath 定位
driver.find_element_by_xpath("基于xpath方法是实现")
#css selector 定位
driver.find_element_by_css_selector("css属性")
#partial link text
driver.find_element_by_partial_link_text("模糊查询")
"""
四:webdriver的常见的方法:
1 元素的点击,元素的清除 ,元素的再次输入
元素清除:clear()
元素的输入:send_keys()
元素点击:click()
from selenium import webdriver
import time
driver= webdriver.Chrome("C:/Users/baocomputer/tools/chromedriver_win32/chromedriver.exe")
driver.maximize_window()
#设置隐式等待
driver.implicitly_wait(10)
#打开浏览器
driver.get("http://www.baidu.com")
#id定位属性
search_element = driver.find_element_by_id('kw')
search_element.send_keys("九阳真经")
time.sleep(2)
#先将之前搜索的清除
search_element.clear()
time.sleep(1)
#再次输入新的内容
search_element.send_keys('前孔达克洛伊')
#点击操作
driver.find_element_by_id('su').click()
2 submit提交方法
submit()方法用于提交表单数据,搜索框输入关键字之后的回车操作,就可以用该方法来模拟。
import time
from selenium import webdriver
driver = webdriver.Chrome()
#driver.maximize_window()
driver.implicitly_wait(10)
url = "https://www.baidu.com"
driver.get(url=url)
search_element = driver.find_element_by_id('kw')
#输入内容
#search_element.send_keys("九阳真经")
#对于表单的提交方法:使用sunmit提交
#search_element.submit()
#返回搜索框的大小
#print(search_element.size)
2获取文本信息
#获取百度一下文本按钮的文本信息
# time.sleep(2)
# button_element = driver.find_element_by_id("su").text
# print(button_element)
无法进行获取
# #获取hao123文本
# ele = driver.find_element_by_css_selector("a[href='https://www.hao123.com?src=from_pc']").text
# print(ele)
注意:我们获取文本信息的内容,获取标签中间的内容,如果是标签属性的值,使用text无法获取。
3获取标签内部的属性值
获取标签内部的属性值:get_attribute(name):获取属性值
button_selement = driver.find_element_by_id('su').get_attribute("value")
print(button_selement)
4查看页元素是否可见存在
#is_display():设置元素是否可见,在页面上是否显示该元素,如果能看到,返回true,反之false
button_selement = driver.find_element_by_id('su')
print(button_selement.is_displayed())
五 鼠标事件
在webDriver中,关于鼠标操作的方法封装在ActionChains类提供。Actionchains类提供了鼠标操作的常用方法
perform():执行了ActionChains中存储的行为
context_click():右击
double_click():双击
drag_and_drop():拖动
move_to_element():鼠标悬停
"""
鼠标事件
"""
from selenium import webdriver
import time
#导入ActionChains
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.