在做Web自动化测试的时候,主要是定位到元素,然后检查元素信息,或是针对元素做一些操作。
除此之外,还会与浏览器进行一些交互,如:导航、刷新、截图等等。
1、与元素交互
1.1 获取元素信息
判断元素是否显示在页面上
driver.find_element(By.id, "user_name").is_displayed()
判断元素是否可用
driver.find_element(By.id, "user_name").is_enabled()
检查元素是否被选中
driver.find_element(By.id, "user_name").is_selected()
获取元素标签名
driver.find_element(By.id, "user_name").tag_name
获取元素的尺寸
driver.find_element(By.id, "user_name").rect
获取元素的CSS信息
driver.find_element(By.id, "user_name").value_of_css_property("background-color")
获取元素的文本内容
driver.find_element(By.id, "user_name").text
获取元素的属性值
driver.find_element(By.id, "user_name").get_attribute("value")
1.2 元素操作
单击元素
driver.find_element(By.id, "user_name").click()
清空元素内容
driver.find_element(By.id, "user_name").clear()
输入内容(字符串、键盘输入)
driver.find_element(By.id, "user_name").send_keys("test")
键盘操作
# 输入Selenium后按下回车键
driver.find_element(By.ID, 'kw').send_keys('Selenium', Keys.ENTER)
常用键盘操作:
键盘操作 | 说明 | 示例 |
---|---|---|
Keys.ENTER | 回车 | send_keys('Selenium', Keys.ENTER) |
Keys.BACKSPACE | 删除 | send_keys(Keys.BACKSPACE) |
Keys.CONTROL | Ctrl | send_keys(Keys.CONTROL,'c') |
Keys.F1 | F1~F12 | send_keys(Keys.F1) |
Keys.TAB | Tab | send_keys(Keys.TAB) |
Keys.ESCAPE | Esc | send_keys(Keys.ESCAPE) |
Keys.SPACE | 空格 | send_keys(Keys.SPACE) |
鼠标操作
上面讲到的click方法只适用于点击鼠标左键,而在实际应用中还会用到右击、双击等。Selenium Webdriver提供一个功能强大的ActionChains方法,可以实现这些操作。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
element = driver.find_element(By.ID, 'kw')
element_1 = driver.find_element(By.ID, 'kw_1')
# 右击
ActionChains(driver).context_click(element).perform()
# 双击
ActionChains(driver).double_click(element).perform()
# 拖动(第一个参数为要拖动的元素,第二个参数为目标位置)
ActionChains(driver).drag_and_drop(element, element_1)
# 鼠标悬停
ActionChains(driver).move_to_element(element).perform()
driver.quit()
上传文件
driver.find_element(By.CLASS_NAME, 'upload-pic').send_keys('G:\\0.png')
2、与浏览器交互
2.1 获取信息
获取浏览器名称
driver.name
获取页面标题
driver.title
获取当前页面的URL
driver.current_url
获取源码
driver.page_source
2.2 页面导航
跳转到其它页面
driver.get("https://www.baidu.com")
后退到上一个页面
driver.back()
前进到下一个页面
driver.forward()
刷新页面
driver.refresh()
关闭当前标签页
driver.close()
关闭浏览器
driver.quit()
2.3 窗口操作
获取窗口尺寸和位置
driver.get_window_rect()
获取窗口位置
driver.get_window_position()
获取窗口大小
driver.get_window_size()
设置窗口大小
# 设置窗口宽度为1920, 高度为1080
driver.set_window_size(1920, 1080)
最大化窗口
driver.maximize_window()
2.4 截图
截图
driver.get_screenshot_as_file('./test.png')
以上就是Selenium自动化测试的一些常用交互操作。
如有什么意见与建议,请在评论区留言吧!
如果你觉得文章对你有一点点帮助,烦请各位动动小手,点赞、关注、收藏!谢谢!