1、 鼠标事件
在测试中,鼠标事件是很常见的,如双击等,鼠标事件需要导入fromselenium.webdriver.common.action_chains import ActionChains
ActionChains类的重要方法通过使用ActionChains类中的执行键盘和鼠标事件,seleniumwebdriver python的API汇总如下:
方法 | 描述 | Example |
---|---|---|
click(element) | 执行点击操作 | click(locator) |
click_and_hold(element) | 向下向左鼠标左键点击一个元素 | click_and_hold(locator) |
double_click(element) | 执行双击操作 | double_click(locator) |
content_click() | 执行右击操作 | dontent_click(locator) |
move_to_element(element) | 鼠标悬停在一个元素 | move_to_element(locator) |
perform() | 执行存储行动 | perform() |
release(element) | 释放按钮 | release(locator) |
send_keys(element) | 发送元素的键包含当前 | send_keys('') |
send_keys_to_element(element) | 发送到元素的element |
double_click() 是双击一个对象。下面就已双击“百度一下”按钮为实例说明double_click()的使用,在百度搜索输入框输入搜索的关键词,双击”百度一下”按钮,具体见如下的实例代码:
#coding:utf-8
fromselenium import webdriver
fromselenium.webdriver.common.by import By
fromselenium.webdriver.support.ui import WebDriverWait
fromselenium.webdriver.support import expected_conditions
fromselenium.webdriver.common.action_chains import ActionChains
fromselenium.webdriver.common.keys import Keys
importunittest
fromtime import sleep
classdemoTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.driver.get('http://www.baidu.com')
def testDemo(self):
self.driver.find_element_by_id('kw').send_keys('double_click()')
double=self.driver.find_element_by_id('su')
ActionChains(self.driver).double_click(double).perform()
def tearDown(self):
self.driver.quit()
if__name__=='__main__':
unittest.main(verbosity=2)
move_to_element()是鼠标悬浮在一个元素上,我们已百度首页为案例来说明它的使用,在百度首页,鼠标悬浮到“更多产品”,就会显示出如下的效果图:
下面,我们结合move_to_element()来实现这样的一个效果,见测试脚本:
#coding:utf-8
fromselenium import webdriver
fromselenium.webdriver.common.by import By
fromselenium.webdriver.support.ui import WebDriverWait
fromselenium.webdriver.support import expected_conditions
fromselenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keysimport Keys
importunittest
fromtime import sleep
classdemoTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.driver.get('http://www.baidu.com')
def testDemo(self):
move=self.driver.find_element_by_link_text(u'更多产品')
ActionChains(self.driver).move_to_element(move).perform()
sleep(3)
def tearDown(self):
self.driver.quit()
if__name__=='__main__':
unittest.main(verbosity=2)
click_and_hold() 是鼠标左键按在一个元素上,已百度首页搜索为实例,在搜索输入框输入关键词,鼠标按下左键到”百度一下”的按钮,来实现点击的操作,具体见如下的实例代码:
#coding:utf-8
fromselenium import webdriver
fromselenium.webdriver.common.by import By
fromselenium.webdriver.support.ui import WebDriverWait
fromselenium.webdriver.support import expected_conditions
fromselenium.webdriver.common.action_chains import ActionChains
fromselenium.webdriver.common.keys import Keys
importunittest
fromtime import sleep
classdemoTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.maximize_window()
self.driver.implicitly_wait(30)
self.driver.get('http://www.baidu.com')
def testDemo(self):
self.driver.find_element_by_id('kw').send_keys('selenium')
left=self.driver.find_element_by_id('su')
ActionChains(self.driver).click_and_hold(left).perform()
sleep(3)
def tearDown(self):
self.driver.quit()
if__name__=='__main__':
unittest.main(verbosity=2)