玩转UI自动化测试3
1.Selenium 模拟键盘事件
需要先引包:from selenium.webdriver.common.keys import keys
Actions类的send_keys,发送某个键到当前焦点元素,如tab,enter等,包括安卓自动化的点亮屏幕
代码示例:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome()
driver = webdriver.Chrome(executable_path='./chromedriver.exe')
driver.get("http://8.141.52.231/shop/index.php?con=simple&act=login")
driver.maximize_window()
# 定位到输入框,输入账号
driver.find_element_by_id("email").send_keys("admin@admin.com")
ac = ActionChains(driver)
# 按住TAB键定位到密码框
ac.send_keys(Keys.TAB)
# 输入密码
ac.send_keys("111111")
# 按住TAB键定位到登陆按钮
ac.send_keys(Keys.TAB)
# 按住回车键键实现登陆操作
ac.send_keys(Keys.ENTER)
ac.perform()
time.sleep(10)
driver.close()
2.Selenium 植入cookie
通过driver的add_cookie方法实现,不一定实用
driver.get("http://8.141.52.231/shop/index.php?con=simple&act=login")
driver.add_cookie({"name": "Tiny_autologin", "value": 'sadadadas'})
driver.add_cookie({"name": "PHPSESSID", "value": 'mki9saadaadsa'})
driver.refresh()
3.Selenium弹窗跳转操作
# 1.警告框跳转
driver.get("file:///D:/Software/selenium_webdriver/demo.html")
driver.maximize_window()
driver.find_element_by_class_name("alert").click()
alert = driver.switch_to.alert
# 点击确定按钮,关闭警告框
alert.accept()
# 点击取消按钮,关闭警告框
alert.dismiss()
# 获取警告框文本内容
alert.text
# 向警告框中输入内容
alert.send_keys("xxxxx")
4.Selenium 窗口跳转操作
#窗口跳转 句柄,首先要获取句柄,driver.window_handles方法可以获取浏览器句柄
# 先跳转到百度页
driver.find_element_by_link_text("Open baidu").click()
time.sleep(2)
# 切换到百度的浏览器句柄
driver.switch_to.window(driver.window_handles[-1])
# 在百度页面搜索框输入关键字selenium进行搜索
driver.find_element_by_id("kw").send_keys("selenium")
time.sleep(2)
# 切换到第一个浏览器句柄
driver.switch_to.window(driver.window_handles[0])
# 在user输入框中输入haha
driver.find_element_by_id("user").send_keys("haha")
time.sleep(2)
# 浏览器退出
driver.quit()
# 补充,获取到当前浏览器的句柄
driver.current_window_handle
5.Selenium frame跳转
driver.switch_to.frame('frame_name')
driver.switch_to.frame(1)
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])
# 跳转到frame的name为aa的frame
driver.switch_to.frame("aa")
# 在 frame下输入关键字手机
driver.find_element_by_id("search-keyword").send_keys("手机")
# 跳转到原始页面
driver.switch_to.default_content
# 跳转到上一级frame
driver.switch_to.parent_frame
# 在原始页面找到属性id为user,输入haha
driver.find_element_by_id("user").send_keys("haha")