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()

 

posted @ 2021-09-23 19:37  三国初梦  阅读(92)  评论(0)    收藏  举报