selenium之Alert弹出框处理、鼠标操作、键盘操作

更新时间:2020-09-22 14:37:05点击次数:387次
selenium之Alert弹出框处理、鼠标操作、键盘操作
(一)Alert弹出框处理
浏览器弹出框:
1.使用switch_to方法先切换到浏览器弹出框。
driver.switch_to.alert
2.ActionChains类提供了一系列的操作方法
dismiss(): 解散现有警告框 (否)
accept(): 接受现有警告框 (是)
text :获取弹出框里的内容
send_keys(): 在弹出框里输入文字(如果可以输入的话)
下边以百度搜索设置弹框处理
在这里插入图片描述
代码如下:

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.action_chains import  ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.maximize_window()
# 1)定位到要悬停的元素
loc = (By.XPATH,'//span[@id="s-usersetting-top"]')
ele = driver.find_element(*loc)
ele.click()
#鼠标悬浮操作
#2)实例化Actionchains类
ac = ActionChains(driver)
# 3)调用鼠标行为
ac.move_to_element(ele)
# 4)调用perform()来执行鼠标动作
ac.perform()

# # 2)3)4)
# ActionChains(driver).move_to_element(ele).perform()

# 1)等待下拉列表中的元素可见
loc = (By.XPATH,'//a[text()="搜索设置"]')
WebDriverWait(driver,10).until(EC.visibility_of_element_located(loc))
driver.find_element(*loc).click()

#点击“保存设置”按钮
save_element = (By.XPATH,'//div[@id="se-setting-7"]//a[text()="保存设置"]')
WebDriverWait(driver,10).until(EC.visibility_of_element_located(save_element))
driver.find_element(*save_element).click()
# 等待弹框出现
WebDriverWait(driver,50).until(EC.alert_is_present())

#切换到警告框
alert = driver.switch_to.alert

#获取警告框提示信息
alert_text = alert.text
print(alert_text)

#点击确定
alert.accept()

driver.quit()

(二)鼠标操作
在webDriver中,与鼠标操作相关的方法都封装在ActionChains类中
ActionChains类提供了鼠标操作的常用方法:

perform():(执行ActionChains类中存储的所有行为)来执行鼠标操作
context_click():右击
double_click():双击
drag_and_drag():拖动
move_to_element():鼠标悬停
主要操作流程:
1.存储鼠标操作
2.perform()来执行鼠标操作
以百度 设置为例
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.maximize_window()

# 鼠标悬浮1,2,3,4,
# 1) 找到鼠标要操作的元素
loc = (By.XPATH,'//span[@id="s-usersetting-top"]')
ele = driver.find_element(*loc)
ele.click()
# 2) 实例化Actionchains类
ac = ActionChains(driver)
# 3)调用鼠标行为
ac.move_to_element(ele).click(ele)
# 4)调用perform()来执行鼠标动作。
ac.perform()

# # 2)3)4)
# ActionChains(driver).move_to_element(ele).perform()
# 1)等待 下拉列表当中的元素可见
loc = (By.XPATH,'//a[text()="高级搜索"]')
WebDriverWait(driver,10).until(EC.visibility_of_element_located(loc))
# 2)选你想的元素
driver.find_element(*loc).click()  # 触发了高级搜索内容出现
time.sleep(7)
driver.quit()

(三)键盘操作
以下为常用的键盘操作

删除键 Keys.BACK_SPACE
空格键 Keys.SPACE
制表键 Keys.TAB
回退键 Keys.ESCAPE
回车键Keys.ENTER
全选(Keys.CONTROL,‘a’)
复制(Keys.CONTROL,‘c’)
剪切(Keys.CONTROL,‘x’)
粘贴(Keys.CONTROL,‘v’)
10.刷新键Keys.F5
代码如下:
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


driver = webdriver.Chrome()
# driver.implicitly_wait(10)   # 隐性等待
driver.get("http://www.baidu.com")

element = driver.find_element_by_id("kw")   # WebElement对象 - 1个对象对应1个元素
# driver.find_elements_by_id("kw")
element.send_keys("selenium webdriverr",Keys.ENTER)
# element.send_keys(Keys.CONTROL,"c")
# 删除字母多出的r
element.send_keys(Keys.BACK_SPACE)
# 输入空格键+ “教程”
element.send_keys(Keys.SPACE)
element.send_keys("教程")
#输入组合键CTRL + a,全选输入框内容
element.send_keys(Keys.CONTROL,'a')
#输入组合键CTRL + x,剪切输入框内容
element.send_keys(Keys.CONTROL,'x')
#输入组合键CTRL + v,粘贴内容到输入框
element.send_keys(Keys.CONTROL,'v')
#用回车键代替单击操作
element.send_keys(Keys.ENTER)
time.sleep(5)
driver.quit()

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息