Selenium 鼠标键盘操作与滚动条控制

2021-08-09 11:14:44 浏览数 (1)

实现思路

  • 需要引入ActionChains类
  • 然后定位相关元素
  • 在ActionChains().调用相关鼠标操作方法

相关方法

  • context_click() 右击
  • double_click () 单击
  • move_to_element() 鼠标悬停

鼠标操作

代码语言:javascript复制
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep

driver=webdriver.Firefox()

driver.get("http://www.baidu.com")
driver.maximize_window()

driver.find_element_by_css_selector("#kw").send_keys("Python")

# 获取搜索框元素对象
element=driver.find_element_by_css_selector("#kw")

sleep(3)
#双击操作
ActionChains(driver).double_click(element).perform()

sleep(2)

#右击操作
ActionChains(driver).context_click(element).perform()

sleep(3)

#鼠标悬停
above=driver.find_element_by_css_selector(".pf")
ActionChains(driver).move_to_element(above).perform()

sleep(4)
driver.quit()

键盘操作

测试案例
  • 在百度搜索关键词“Python”
  • 然后将关键词复制或剪切到搜狗搜索框进行搜索
代码实现
代码语言:javascript复制
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep

driver=webdriver.Firefox()

driver.get("http://www.baidu.com")
driver.find_element_by_css_selector("#kw").send_keys("Python")

sleep(2)
#键盘全选操作 Ctrl A
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'a')

#键盘选择复制或剪切操作 Ctrl C
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'c')
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'x')

#打开搜狗页面
driver.get("http://www.sogou.com/")
sleep(2)

#粘贴复制内容
driver.find_element_by_css_selector(".sec-input").send_keys(Keys.CONTROL,'v')
sleep(2)

#点击搜索按钮
# driver.find_element_by_xpath("//input[@id='stb']").click()
driver.find_element_by_css_selector("#stb").click()


sleep(3)
driver.quit()

滚动条控制

selenium可以模拟人工上下滑动进度条的操作。

实践案例

案例1:

打开我要自学网页面,然后将滚动条拖到最底部,然后再拖到顶部

代码语言:javascript复制
from  selenium import webdriver
from time import sleep

driver=webdriver.Firefox()
driver.get("http://www.51zxw.net/")
sleep(2)

#将滚动调拖到最底部
js="var action=document.documentElement.scrollTop=10000"
driver.execute_script(js)
sleep(2)

#将滚动条拖到最顶部
js="var action=document.documentElement.scrollTop=0"
driver.execute_script(js)
sleep(3)

driver.quit()
案例2:

分别打开我要自学网页面和百度页面,然后进行截图

代码语言:javascript复制
from selenium import webdriver
from time import sleep

#加载浏览器驱动
driver=webdriver.Firefox()

#打开自学网页面并截图
driver.get("http://www.51zxw.net")
driver.get_screenshot_as_file(r"E:Python_script51zxw.jpg")

#打开百度页面并截图
driver.get("http://www.baidu.com")
driver.get_screenshot_as_file(r"E:Python_scriptbaidu.png")


sleep(2)
driver.quit()

更多干货

  • Webdriver简介
  • Selenium 元素checkbox元素操作与元素等待
  • 8.9 Selenium元素定位方式
  • Appium连续滑动操作——九宫格滑动
  • Appium Android Toast元素识别
  • Android H5元素定位
  • Mac 环境Appium自动化测试环境搭建
  • 众里寻他千百度—Appium Android 元素定位方式
  • Android自动化测试设备弹窗处理
  • Ubuntu Docker STF环境搭建
  • Mac OS环境搭建STF
  • Python自动化日志收集
  • Appium参数配置—yaml

0 人点赞