1.Selenium简介
- Selenium是一款基于Web页面的UI自动化测试框架,直接运行在浏览器中,就像真正的用户在操作一样
- 支持多浏览器操作:Chrome、IE、Firefox、Safaria等
- 支持跨平台,Windows、Linux、Mac等
- 多语言,Python、Java、Ruby、C#等
自动化代码与驱动之间是通过http进行通信的,是使用一种restful api 接口进行通信
Selenium启动关闭浏览器
#导入webdriver
from selenium import webdriver
global driver
#创建浏览器驱动
driver = webdriver.Chrome()
#发送get请求
driver.get("http://www.baidu.com")
#窗口最大化
driver.minimize_window()
#窗口最小化
driver.minimize_window()
# 打印页面的title 结果:百度一下,你就知道
print(driver.title)
# 页面刷新
driver.refresh()
# 关闭当前窗口
# driver.close()
# 退出浏览器
driver.quit()
2. 三种等待时间介绍
# 强制等待(线程等待) 设置固定休眠时间,单位为秒。 由python的time包提供, 导入 time 包后就可以使用。
time.sleep(3)
# 隐式等待: 由webdriver提供的方法,一旦设置,这个隐式等待会在WebDriver对象实例的整个生命周期起作用
# 它不针对某一个元素,是全局元素等待,即在定位元素时,需要等待页面全部元素加载完成,才会执行下一
# 个语句。如果超出了设置时间的则抛出异常。
driver.implicitly_wait(3)
# 显示等待: 程序每隔x秒去看一眼指定元素,如果条件成立了,则执行操作,否则继续等待,直到超过设置的
# 最长时间,然后抛出异常。
# 格式: WebDriverWait(driver, 超时时长, 调用频率, 忽略异常).until(可执行方法, 超时时返回的信息)
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 3, 0.5, None).until(EC.presence_of_element_located((By.ID, "kw")))
driver.find_element_by_id("kw").send_keys("python")
3. Selenium中八种定位方式
(1)通过id定位
(2)通过name定位
(3)通过class定位
(4)通过link_text定位
(5)通过partial_link_text定位
(6)通过tag_name定位
(7)通过css_selector定位
(8)通过xpath定位
id,name,class定位
(1)id定位
driver.find_element_by_id(“kw”)
(2)name定位
driver.find_element_by_name(“wd”)
(3)class定位
driver.find_element_by_class(“s_ipt”)
link,partial_link定位
(4)link_text定位(精准定位)
driver.find_element_by_link_text(“hao123”)