(一)什么是selenium
1、selenium是一个自动化测试工具,说人话就是用代码操控浏览器
2、selenium脚本的8个组成部分
① 实例化浏览器对象
② 获取浏览器信息
③ 请求访问页面
④ 查找定位元素
⑤ 操作元素
⑥ 动作链/行为链
⑦ 获取元素信息
⑧ 延时等待
(二)webdriver模块
1、WebDriver对象
① 实例化WebDriver对象 driver
浏览器分类
webdriver.Chrome()
webdriver.Firefox()
webdriver.Edge()
webdriver.Safari()
浏览器选项
options
② 属性
driver.page_source 网页源代码
driver.current_url 当前标签页或者窗口所请求的url地址
driver.window_handles 窗口句柄列表
③ 方法
driver.get()
作用:对一个URL发送请求
driver.find_element()
作用:定位指定的一个元素
参数:by=指定定位方法,value=指定具体的值
定位方式
By这个类要在 from selenium.webdriver.common.by import By 导入
By.ID
根据标签id属性定位
By.NAME
根据标签name属性定位
By.CLASS_NAME
根据标签class属性定位
By.TAG_NAME
根据标签名称定位
By.LINK_TEXT
根据被标签包裹的文字定位
By.CSS_SELECTOR
根据CSS选择器来定位
By.XPATH
根据Xpath路径查询语言来定位
返回值:一个WebElement对象
driver.find_elements()
作用:定位指定的所有元素
参数:by=指定定位方法,value=指定具体的值
返回值:一个由WebElement对象组成的列表
driver.get_cookie()
作用:获取一个名叫xxx的cookie
参数:name=你想要获取的cookie名字
driver.get_cookies()
作用:获得所有的cookie
返回值:一个由字典组成的列表
driver.execute_script()
作用:执行JavaScript脚本
打开新标签页
"window.open('http://httpbin.org/ip')"
滚动滚动条
移动到页面最底部
“window.scrollTo(0, document.body.scrollHeight)”
document.body.scrollHeight属性是获取当前HTML文档的最底部高度
移动到相对当前位置的坐标
“window.scrollBy(0, 700)”
移动到绝对位置
“window.scrollTo(0, 1200)”
整个窗口的绝对位置x=0, y=1200
driver.close()
作用:关闭当前标签页或者窗口
driver.quit()
作用:关闭整个浏览器
driver.forward()
作用:前进到下一个页面
driver.back()
作用:后退到上一个页面
driver.set_window_size()
作用:设置浏览器窗口大小
参数:宽和高
driver.implicitly_wait()
作用:隐式等待你传入的指定时长
④ switch_to模块
方法
driver.switch_to.window()
- 作用:打开一个窗口(就多一个窗口在桌面上了)
- 参数:窗口句柄或者窗口名称
driver.switch_to.new_window()
- 作用:打开一个新标签或者窗口
- 参数:'tab'新标签页,'window'新窗口
2、WebElement对象
① 属性
tag.text
获取标签中的文字内容
tag.id
获取节点ID
tag.location
获取节点在页面中的相对位置
tag.tag_name
获取节点的标签名
tag.size
获取节点的宽高大小
② 方法
tag.send_keys()
作用:向指定的标签元素发送值
参数:你想要发送的key值
tag.clear()
作用:清空元素中送入的内容
tag.click()
作用:点击这个元素
tag.get_attribute()
作用:获取标签节点的属性值
参数:你想要获取的属性名称
tag.find_element()
作用:可以接着在已定位的标签中继续寻找想要的标签
WebDriver对象和WebElement对象都有这个方法
3、ActionChains对象
① 实例化 ActionChains 对象 actions
ActionChains(driver)
② 方法
actions.move_to_element()
作用:鼠标移动到指定元素
参数:指定元素
actions.send_kyes_to_element()
作用:向元素中输入值
参数:元素,值
actions.click()
作用:点击元素
参数:你想点击的元素
actions.drag_and_drop()
作用:将source元素,拖动到target元素位置
参数:source一开始的位置,target拖动后的位置
actions.perform()
作用:执行所定义的动作
4、WebDriverWait对象
① 实例化 WebDriverWait 对象 wait
from selenium.webdriver.support.ui import WebDriverWait
他是一个等待对象,需要传入driver对象和等待时长
wait = WebDriverWait(driver, 100)
② 方法
until()
作用:传入等待条件,函数会一直等到条件出现或者你之前设置的最大时间到达后退出等待
参数:excepted_conditions 期待条件
(三)expected_conditions模块
1、期待条件函数
presence_of_element_located()
作用:判断期待的元素是否出现
参数:传入一个定位器它是一个元组,例如(By.ID, 'id_name')
element_to_be_clickable()
作用:判断期待的元素是否出现并且能被点击
参数:传入一个定位器或者是WebElement对象
alert_is_present()
作用:判断是否出现警告框