Selenium
操作测试对象
鼠标点击和键盘输入
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get("http://www.baidu.com/")
# 浏览器最大化
browser.maximize_window()
time.sleep(2)
# send_keys模拟用户在输入框输入要搜索的文字
browser.find_element_by_id("kw").send_keys("西安工业大学")
# click模拟用户用鼠标点击搜索一下
browser.find_element_by_id("su").click()
time.sleep(3)
# 当向在输入框中输入其他内容搜索时,需要先用clear清除内容,再重新输入搜索内容
browser.find_element_by_id("kw").clear()
browser.find_element_by_id("kw").send_keys("Ipad")
browser.find_element_by_id("su").click()
time.sleep(3)
browser.quit()
submit提交表单
查看控件标签的属性,如果有submit,则可以用submit代替click点击按钮
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get("http://www.baidu.com/")
browser.maximize_window()
time.sleep(2)
browser.find_element_by_id("kw").send_keys("李白")
browser.find_element_by_id("su").submit()
time.sleep(3)
browser.quit()
text获取元素文本
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get("http://www.baidu.com/")
browser.maximize_window()
time.sleep(2)
# 获取文本信息
text = browser.find_element_by_xpath("//*[@id='bottom_layer']/div/p[8]/a").text
# python中的输出语句
print(text)
browser.quit()
添加等待
添加休眠和智能等待
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get("http://www.baidu.com/")
browser.maximize_window()
# 调用sleep方法,后面括号中的参数是等待时间,这是一个固定等待,设置多久就等待多久
# time.sleep(3)
# 智能等待 等待时间为[0,6]
# browser.implicitly_wait(6)
browser.implicitly_wait(3)
browser.find_element_by_id("kw").send_keys(u"邓伦 - 百度百科")
browser.find_element_by_id("su").click()
browser.implicitly_wait(10)
browser.find_element_by_link_text(u"邓伦").click()
time.sleep(2)
browser.quit()
打印信息
打印url以及title
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get("http://www.baidu.com/")
browser.maximize_window()
time.sleep(3)
browser.find_element_by_id("kw").send_keys(u"邓伦")
browser.find_element_by_id("su").click()
browser.implicitly_wait(6)
browser.find_element_by_partial_link_text(u"邓伦").click()
browser.implicitly_wait(10)
# 获取标题
title = browser.title
# 打印标题
print("title:"+title)
# 获取url
url = browser.current_url
# 打印url,打印的是上一个页面的Url
print("url="+url)
time.sleep(2)
browser.quit()
浏览器的操作
浏览器放大和缩小
# 放大浏览器
browser.maximize_window()
# 缩小浏览器
设置浏览器宽、高
# 设置浏览器页面的大小
browser.set_window_size(900,1000)
操作浏览器前进、后退
from selenium import webdriver
import time
browser = webdriver.Chrome()
first_url = "http://www.baidu.com/"
browser.get(first_url)
time.sleep(2)
browser.find_element_by_id("kw").send_keys("哈哈")
browser.find_element_by_id("su").click()
time.sleep(2)
# 返回上一次浏览的页面
browser.back()
time.sleep(3)
# 前进到下一个页面
browser.forward()
time.sleep(2)
browser.quit()
控制浏览器滚动条
# 将滚动条滑到页面的最底端
js1 = "var q=document.documentElement.scrollTop=10000"
browser.execute_script(js1)
time.sleep(4)
# 将滚动条滑到页面的最顶端
js2 = "var q=document.documentElement.scrollTop=0"
键盘事件
键盘按键用法
from selenium import webdriver
import time
# 引入keys包
from selenium.webdriver.common.keys import Keys
browser = webdriver.Chrome()
browser.get("http://127.0.0.1:88/zentao/user-login.html")
browser.maximize_window()
time.sleep(2)
# 输入用户名
browser.find_element_by_name("account").send_keys("admin")
# 用tab键将光标移动到密码输入框
browser.find_element_by_name("account").send_keys(Keys.TAB)
time.sleep(8)
# 输入密码
browser.find_element_by_name("password").send_keys("261919Zss")
# 用enter键登录
browser.find_element_by_name("password").send_keys(Keys.ENTER)
time.sleep(3)
browser.quit()
键盘组合键用法
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
browser = webdriver.Chrome()
browser.get("http://www.baidu.com/")
browser.maximize_window()
browser.find_element_by_id("kw").send_keys(u"邓伦")
browser.find_element_by_id("su").click()
browser.implicitly_wait(10)
# 复制
browser.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
time.sleep(3)
# 粘贴
browser.find_element_by_id("kw").send_keys(Keys.CONTROL,'v')
time.sleep(3)
text = browser.title
browser.find_element_by_id("kw").send_keys(text)
browser.find_element_by_id("su").click()
time.sleep(4)
browser.quit()
鼠标事件
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
browser = webdriver.Chrome()
browser.get("http://www.baidu.com/")
browser.maximize_window()
time.sleep(3)
browser.find_element_by_id("kw").send_keys("哈哈")
# 定位百度一下按钮
name = browser.find_element_by_id("su")
# 右击
# ActionChains(browser).context_click(name).perform()
# 双击
ActionChains(browser).double_click(name).perform()
time.sleep(3)