目录
一.自动化环境的搭建
二.使用selenium
三.元素定位
四.元素等待
五.操控元素
六.Selenium WebDriver的属性
七.Selenium屏幕截图
八.Selenium定位frame和iframe
九.下载Selenium的IDE(帮助初学者去录制测试的过程)
- 在pycharm终端上输入 pip insatll selenium来安装
- 安装浏览器对应驱动
- 查看浏览器对应版本
- 下载对应版本浏览器驱动
- 下载好的放在path里
from selenium import webdriver
#启动浏览器
driver=webdriver.Edge()
#输入网址
driver.get('https://baidu.com')
#关闭浏览器
driver.quit()
from selenium import webdriver
from selenium.webdriver.common.by import By #需要去导入by
#开始驱动
driver=webdriver.Edge()
#输入网址
driver.get("https://baidu.com")
#查找输入框元素,使用id
element=driver.find_element(By.ID,'kw')
element.send_keys('通讯')
#关闭浏览器
driver.quit()
find_elements:选择符合条件的所有元素,没有符合条件元素,返回空列表
find_element:选择符合条件的第一个元素,没有符合条件元素,会抛出异常
缺点:JavaScript一般都是放在body后面加载,实际上页面元素已经加载完毕,还要等待全部页面加载结束
优点:隐式等待对整个driver周期都起作用,在最开始设置一次就可以
from time import sleep
优点:在脚本调试时使用,方便快捷
缺点:导致项目自动化时间无线延长
引入显示等待模块路径 from selenium.webdriver.support.wait import WebDriverWait WebDriverWait的参数:
- 获取整个元素对应的HTML的文本内容,使用 element.get_attribute('outerHTML')
2.获取某个元素内部的HTML内容,使用 element.get_attribute('innerHTML')
多选(先清除所有选项,在选择需要的内容)
1.通过鼠标的动作来操作
单击鼠标左键 :click(on_element=None)
单击鼠标右键:context_click(on_element=None)
单击鼠标左键不松开:click_and_hold(on_element=None)
双击鼠标左键:double_click(on_element=None)
将鼠标从某个元素(source)按下去拖拽到某个元素(target)然后松开:drag_and_drop(source, target)
将鼠标从某个元素(source)拖拽到某个坐标然后松开:drag_and_drop_by_offset(source, xoffset, yoffset)
鼠标从当前位置移动到某个坐标:move_by_offset(xoffset, yoffset)
鼠标移动到某个元素:move_to_element(to_element)
移动到距某个元素(左上角坐标)多少距离的位置:move_to_element_with_offset(to_element, xoffset, yoffset)
在某个元素位置松开鼠标左键:release(on_element=None)
执行链条中所有操作:perform()
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.action_chains import ActionChains #开始启动驱动 driver=webdriver.Edge() #输入网址 driver.get('http://baidu.com') #页面放大 driver.maximize_window() #隐式等待 driver.implicitly_wait(10) #鼠标移动到某个元素进行点击 #调用这个实例对象 ac=ActionChains(driver) #先定位这个元素 # soutu_btu=driver.find_element(By.LINK_TEXT,'新闻') #调用这个实例对象 # ac=ActionChains(driver) #鼠标移动 # ac.move_to_element(soutu_btu).click().perform() #隐式等待 # driver.implicitly_wait(10)
在控制台里面加上 setTimeout(function(){debugger},5000)
- alert弹出框(显示通知信息,用户看完信息后,点击OK就可以)
driver.switch_to.alert.accept() #点击OK按钮 driver.switch_to.alert.text() #获取弹出框的信息内容
2.confirm弹出框(需要用户确认,是确定还是取消)
driver.switch_to.alert.accept() #点击OK按钮 driver.switch_to.alert.dismiss() #点击取消按钮
3.prompt弹出的框需要输入信息
driver.switch_to.alert.accept() #点击OK按钮 driver.switch_to.alert.dismiss() #点击取消按钮 driver.switch_to.alert.send_keys() #输入内容
from selenium import webdriver
from selenium.webdriver.common.by import By
#开始浏览器的驱动
driver=webdriver.Edge()
#输入网址
driver.get('https://baidu.com')
#隐式等待
driver.implicitly_wait(5)
#放大窗口
driver.maximize_window()
#打印浏览器名称
print(driver.name)
#打印浏览器的url
print(driver.current_url)
#打印浏览器的title
print(driver.title)
#打印句柄
print(driver.window_handles)
#打印源码
print(driver.page_source)
#关闭浏览器
driver.quit()
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep,strftime,localtime,time
#启动驱动
driver=webdriver.Edge()
#输入网址
driver.get('http:baidu.com')
#找到输入框输入selenium点击
element=driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys('selenium')
#点击百度一下
driver.find_element(By.XPATH,'//*[@id="su"]').click()
sleep(2)
#截图
# driver.get_screenshot_as_file('selenium自动化.png')
from time import sleep,strftime,localtime,time
#字符串格式化时间
st=strftime("%Y-%m-%d-%H-%M-%S",localtime(time()))
fime_name=st + '.png'
driver.get_screenshot_as_file(fime_name)
import os
#字符串格式化时间
st=strftime("%Y-%m-%d-%H-%M-%S",localtime(time()))
fime_name=st + '.png'
#找到路径
path=os.path.abspath('scrennshot')
#路径命名
file_path=path+"/"+fime_name
driver.get_screenshot_as_file(file_path)
1.更多---chrom应用商店---扩展程序----搜索selenium IDE---进行下载
2.selenium IDE的界面
3.实现录制的步骤
创建一个项目---创建一个测试用例--输入测试地址--点击开始录制--进行测试操作--停止录制