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

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类提供了鼠标操作的常用方法:

  1. perform():(执行ActionChains类中存储的所有行为)来执行鼠标操作
  2. context_click():右击
  3. double_click():双击
  4. drag_and_drag():拖动
  5. 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()

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

  1. 删除键 Keys.BACK_SPACE
  2. 空格键 Keys.SPACE
  3. 制表键 Keys.TAB
  4. 回退键 Keys.ESCAPE
  5. 回车键Keys.ENTER
  6. 全选(Keys.CONTROL,‘a’)
  7. 复制(Keys.CONTROL,‘c’)
  8. 剪切(Keys.CONTROL,‘x’)
  9. 粘贴(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")
time.sleep(3)
# 删除字母多出的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()

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 这个问题的意思是使用Python Selenium如何处理弹出。 答:使用Selenium的switch_to.alert()方法可以处理弹出。可以使用accept()或dismiss()方法来接受或拒绝弹出。例如: ``` alert = driver.switch_to.alert() alert.accept() # 接受弹出 ``` 或者,如果想要获取弹出上的文本信息,可以使用get_text()方法,例如: ``` alert = driver.switch_to.alert() text = alert.get_text() print(text) ``` ### 回答2: Python Selenium是一个自动化测试工具,用于Web应用程序的测试。在Web应用程序中,经常会出现弹出,对于这种情况我们经常需要用Selenium进行处理。下面我将详细地介绍如何使用Python Selenium处理弹出。 在Selenium处理弹出主要分为三类:警告Alert)、确认(Confirm)和提示(Prompt)。下面我们分别介绍一下这三种弹出处理方法。 1.警告Alert) 在处理警告时,我们需要使用switch_to.alert()方法。 例如,如果我们需要按下“确定”按钮的“警告”弹出窗口,我们可以这样编写: ``` from selenium import webdriver # 创建chromeDriver driver = webdriver.Chrome() # 打开网页 driver.get("http://www.localhost.com") # 点击按钮,触发弹出警告 driver.find_element_by_xpath("//button").click() # 切换到警告 alert = driver.switch_to.alert() # 打印警告文本 print(alert.text) # 点击确定按钮关闭警告 alert.accept() # 退出chromeDriver driver.quit() ``` 2.确认(Confirm) 处理确认时,我们也需要使用switch_to.alert()方法。 例如,如果我们需要按下“确定”按钮的“确认”弹出窗口,我们可以这样编写: ``` from selenium import webdriver # 创建chromeDriver driver = webdriver.Chrome() # 打开网页 driver.get("http://www.localhost.com") # 点击按钮,触发弹出确认 driver.find_element_by_xpath("//button").click() # 切换到确认 confirm = driver.switch_to.alert() # 打印确认文本 print(confirm.text) # 点击确定按钮关闭确认 confirm.accept() # 点击取消按钮关闭确认 # confirm.dismiss() # 退出chromeDriver driver.quit() ``` 3.提示(Prompt) 处理提示时,我们还需要使用switch_to.alert()方法。 例如,如果我们需要按下“确定”按钮的“提示”弹出窗口,并且在文本中填写“hello world”,我们可以这样编写: ``` from selenium import webdriver # 创建chromeDriver driver = webdriver.Chrome() # 打开网页 driver.get("http://www.localhost.com") # 点击按钮,触发弹出提示 driver.find_element_by_xpath("//button").click() # 切换到提示 prompt = driver.switch_to.alert() # 打印提示文本 print(prompt.text) # 在文本中输入“hello world” prompt.send_keys("hello world") # 点击确定按钮关闭提示 prompt.accept() # 退出chromeDriver driver.quit() ``` 此外,还有一种弹出需要特别注意,那就是没有文本的提示,这种情况下我们不能使用么有send_keys()方法的Prompt弹出处理,需要使用Alert弹出处理处理弹出时,我们需要注意的一点是,如果弹出没有关闭,我们的代码会一直卡在那里,所以我们需要在合适的时候关闭弹出。 综上所述,本文简单介绍了如何使用Python Selenium处理弹出。无论是警告、确认还是提示,都能通过switch_to.alert()方法非常方便地进行处理。希望本文能够对学习Python Selenium的开发者们有所帮助。 ### 回答3: Python中的Selenium是网站自动化测试的一个优秀工具。在使用Selenium执行网页自动化测试时,经常会遇到弹出的情况。弹出可能包括警告、确认和提示等。本文将重点介绍如何使用PythonSelenium处理这些弹出。 1. 警告处理 当页面上出现警告信息时,Selenium弹出Alert对话。要处理Alert对话,可以使用switch_to.alert方法,它返回一个Alert对象,然后可以使用text、accept、dismiss等方法对对话进行操作。 示例代码: ```python from selenium import webdriver # 创建一个浏览器驱动 driver = webdriver.Chrome() # 打开测试页面 driver.get('http://example.com') # 点击按钮弹出警告 driver.find_element_by_tag_name('button').click() # 切换到弹出的警告 alert = driver.switch_to.alert # 输出警告文本信息 print(alert.text) # 点击“OK”按钮关闭警告 alert.accept() # 关闭浏览器 driver.quit() ``` 2. 确认处理 确认常用于二次确认某些操作。确认有“确定”和“取消”两个按钮,使用方法与处理警告类似,只需要使用accept点击“确定”按钮,使用dismiss点击“取消”按钮。 示例代码: ```python from selenium import webdriver # 创建一个浏览器驱动 driver = webdriver.Chrome() # 打开测试页面 driver.get('http://example.com') # 点击按钮弹出确认 driver.find_element_by_tag_name('button').click() # 切换到弹出的确认 confirm = driver.switch_to.alert # 输出确认文本信息 print(confirm.text) # 点击“确定”按钮 confirm.accept() # 关闭浏览器 driver.quit() ``` 3. 提示处理 提示类似于警告,但通常会包含一个文本,供用户输入一些信息。要处理提示,可以使用send_keys方法发送输入信息。与其他对话一样,提示也有“确定”和“取消”两个按钮,使用方法与确认相同。 示例代码: ```python from selenium import webdriver # 创建一个浏览器驱动 driver = webdriver.Chrome() # 打开测试页面 driver.get('http://example.com') # 点击按钮弹出提示 driver.find_element_by_tag_name('button').click() # 切换到弹出的提示 prompt = driver.switch_to.alert # 在文本中输入信息 prompt.send_keys('Hello, Selenium!') # 点击“确定”按钮 prompt.accept() # 关闭浏览器 driver.quit() ``` 总结: PythonSelenium提供了一些方法来处理不同类型的弹出。使用switch_to.alert方法可以切换到不同的弹出,然后可以使用text、accept、dismiss和send_keys等方法来处理它们。在使用这些方法时,需要理解不同类型的弹出的特点,并根据实际情况进行选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值