Selenium常见交互操作

 在做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.CONTROLCtrlsend_keys(Keys.CONTROL,'c')
Keys.F1F1~F12send_keys(Keys.F1)
Keys.TABTabsend_keys(Keys.TAB)
Keys.ESCAPEEscsend_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自动化测试的一些常用交互操作。

如有什么意见与建议,请在评论区留言吧!

如果你觉得文章对你有一点点帮助,烦请各位动动小手,点赞、关注、收藏!谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聪明的一休哥哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值