Selenium学习之路05-鼠标&键盘操作
我们在上网冲浪的过程当中,鼠标和键盘是必不可少的工具,在自动化当中也提供了对应的方法,比如鼠标右击,双击,悬停,甚至是鼠标拖动,而对于键盘来说则有字符输入,组合键比如CTRL+C和CRTL+V。
1.鼠标事件
在WebDriver当中有关鼠标的操作都封装在ActionChains类当中常用的方法有:
|
perform() |
执行所有ActionChains中储存的行为 |
|
context_click() |
右击 |
|
double_click() |
双击 |
|
drag_and_drop() |
拖动 |
|
move_to_element() |
鼠标悬停 |
2.键盘事件
Keys()类提供了键盘上几乎所有的按键的方法,同时结合send_keys()方法来模拟键盘输入,
|
send_keys(Keys.BACK_SPACE) |
删除键 |
|
send_keys(Keys.SPACE) |
空格键 |
|
send_keys(Keys.TAB) |
制表键 |
|
send_keys(Keys.ESCAPE) |
回退键 |
|
send_keys(Keys.ENTER) |
回车键 |
|
send_keys(Keys.CONTROL,’a’) |
Ctrl+A |
|
send_keys(Keys.F1) |
键盘F1 |
3.实操
1.访问百度搜索界面,点击设置展开搜素设置的弹窗,按照截图步骤及内容完成对应自动化用例的编写


2、访问百度搜索界面,点击设置展开高级搜索的弹窗,按照截图步骤及内容完成对应自动化用例的编写,最后一张截图需要校验温馨提示文本内容的存在



相关代码如下:
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions as EC import time # 创建 WebDriver 对象,指明使用chrome浏览器驱动 wd = webdriver.Chrome() wd.maximize_window() # 调用WebDriver 对象的get方法 可以让浏览器打开指定网址 wd.get('https://www.baidu.com/?tn=44004473_24_oem_dg') #鼠标悬浮调出搜索设置 user_setting = wd.find_element_by_xpath("//span[contains(@class,'s-top-right-text')]") ActionChains(wd).move_to_element(user_setting).perform() SearchConfig = wd.find_element_by_xpath("//a[contains(text(),'搜索设置')]") SearchConfig.click() time.sleep(2) #进行搜索相关设置 view = wd.find_element_by_id("s1_1").click() lang = wd.find_element_by_id("SL_1").click() page_item = wd.find_element_by_id("nr_3").click() yc = wd.find_element_by_id("issw1_2").click() time.sleep(2) save_config = wd.find_element_by_xpath("//a[contains(text(),'保存设置')]").click() #处理弹窗 text = wd.switch_to.alert.text time.sleep(5) print(text) wd.switch_to.alert.accept() time.sleep(5) #打开新的页签 newwd = 'window.open("https://www.baidu.com")' wd.execute_script(newwd) wd.switch_to.window(wd.window_handles[1]) wd.find_element_by_id("kw").send_keys("filetype:sadqwe") wd.find_element_by_id("su").click() time.sleep(5) wd.find_element_by_class_name("tip_head") text = u"温馨提示" locator = ("xpath","//div[@class='tip_head']") result = EC.text_to_be_present_in_element(locator, text)(wd) if result: print("存在") else: print("不存在") wd.close() wd.switch_to.window(wd.window_handles[0]) wd.close()

浙公网安备 33010602011771号