wangwt123

UI自动化测试-ActionChains类的方法

ActionChains类的方法

ActionChains主要是针对鼠标事件的处理,在鼠标事件中常用的交互为悬浮,双击,以及右键等操作。如果想使用ActionChains的类,首先需要导入它,导入的命令为:

from selenium.webdriver.common.action_chains import ActionChains

 1、悬浮

首先悬浮如下图所示:

其次,我们选择百度“设置”里的“搜索设置”,在弹出的框里选择“关闭”,“保存设置”,弹出“已经记录下您的使用偏好”。

 1 from selenium import webdriver  #包:selenium,模块:webdriver
 2 from selenium.webdriver.common.action_chains import ActionChains
 3 from selenium.webdriver.common.by import By
 4 import  time as t
 5 
 6
 7 driver=webdriver.Chrome()
 8 driver.maximize_window()
 9 driver.get("http://www.baidu.com")
10 
11 # 鼠标事件的类进行实例化
12 action=ActionChains(driver=driver)#实例化
13 t.sleep(2)
14 setting=driver.find_element(By.XPATH,'//*[@id="s-usersetting-top"]')
15 action.move_to_element(setting).perform()  #鼠标悬浮表现出来
16 
17 # 点击搜索设置
18 driver.find_element(By.XPATH,'//*[@id="s-user-setting-menu"]/div/a[1]/span').click()
19 t.sleep(2)
20 
21 # 点击关闭
22 driver.find_element(By.XPATH,'//*[@id="issw1_2"]').click()
23 t.sleep(2)
24 
25 #点击保存设置
26 driver.find_element(By.XPATH,'//*[@id="se-setting-7"]/a[2]').click()
27 
28 #获取弹出框的文本信息
29 text=driver.switch_to.alert.text
30 assert text=="已经记录下您的使用偏好"
31 t.sleep(4)
32 driver.quit()

这里使用了断言“assert“,来进行判断,看我们输入的是否合理。

注意:这里的"XPATH",可能会动态的发生变化,但不影响我们的定位,只要重新打开网页,进行复制即可。

练习:使用了断言“assert“,来判断新浪邮箱的输入框里是否出现提示信息:”输入邮箱名/手机号“

使用了断言“assert“,来判断新浪邮箱的输入框里来验证用户为空的错误提示信息:”请输入邮箱名“

 1 from selenium import webdriver  #包:selenium,模块:webdriver
 2 from selenium.webdriver.common.by import By
 3 import  time as t
 4 driver=webdriver.Chrome()
 5 driver.maximize_window()
 6 driver.get("http://mail.sina.com.cn/")
 7 divText=driver.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[2]/label')
 8 assert divText.text=='输入邮箱名/手机号'
 9 t.sleep(2)
10 #验证用户为空的错误提示信息
11 driver.find_element(By.XPATH,'/html/body/div[3]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[7]/div[1]/a[1]').click()
12 loginNull=driver.find_element(By.XPATH,'/html/body/div[3]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[1]/span[1]')
13 assert loginNull.text=='请输入邮箱名'
14 driver.quit()

 2、右键

首先右键如下图所示:

代码如下:

 1 from selenium import webdriver  #包:selenium,模块:webdriver
 2 from selenium.webdriver.common.action_chains import ActionChains
 3 from selenium.webdriver.common.by import By
 4 import  time as t
 5 driver=webdriver.Chrome()
 6 driver.maximize_window()
 7 driver.get("http://www.baidu.com")
 8 action=ActionChains(driver=driver)
 9 so=driver.find_element(By.ID,'kw')
10 t.sleep(3)
11 action.context_click(on_element=so).perform()  #def context_click(self, on_element=None)中on_element=None也可以不写。
12 t.sleep(2)
13 driver.quit()

3、双击

应用场景:支付等

 1 from selenium import webdriver  #包:selenium,模块:webdriver
 2 from selenium.webdriver.common.action_chains import ActionChains
 3 from selenium.webdriver.common.by import By
 4 import  time as t
 5 driver=webdriver.Chrome()
 6 driver.maximize_window()
 7 driver.get("http://www.baidu.com")
 8 action=ActionChains(driver=driver)
 9 driver.find_element(By.ID,'kw').send_keys("小米智能音箱")
10 #百度界面的“百度一下”
11 so=driver.find_element(By.ID,'su')
12 t.sleep(3)
13 action.double_click(on_element=so).perform()
14 t.sleep(2)
15 driver.quit()

4、截图

 1 from selenium import webdriver  #包:selenium,模块:webdriver
 2 from selenium.webdriver.common.action_chains import ActionChains
 3 from selenium.webdriver.common.by import By
 4 import  time as 
 5 driver=webdriver.Chrome()
 6 driver.maximize_window()
 7 driver.get("http://www.bing.com")
 8 action=ActionChains(driver=driver)
 9 driver.find_element(By.ID,'sb_form_q').send_keys("小米智能音箱")
10 so=driver.find_element(By.CSS_SELECTOR,'#search_icon > svg')
11 t.sleep(3)
12 action.double_click(on_element=so).perform()
13 driver.get_screenshot_as_file("xiaomi.png")
14 t.sleep(2)
15 driver.quit()

截图结果如下:

 

posted on 2022-06-28 20:01  DOUBLE快乐  阅读(186)  评论(0编辑  收藏  举报

导航