写点什么

软件测试学习笔记丨 Selenium 文件上传弹框处理

作者:测试人
  • 2024-04-22
    北京
  • 本文字数:1603 字

    阅读完需:约 5 分钟

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/30832

一、简介

  • 有些场景中,需要上传文件,而 Selenium 无法定位到弹出的文件框,以及网页弹出的提醒。这些都需要特殊的方式来处理。

二、文件上传

  • input 标签使用自动化上传,先定位到上传按钮,然后 send_keys(指定要上传的文件路径)把路径作为值给传进去。



  • 如图所示,是企业微信文件上传的页面定位到标签为 input、type 为 file 的元素信息,然后使用 send_keys 把文件路径作为值给传进去。

  • Python 语法:

driver.find_element(By.CSS_SELECTOR,"#ww_fileInput js_file")\       .send_keys("./hogwarts.png")
复制代码

三、弹窗处理

  • 在页面操作中有时会遇到 JavaScript 所生成的 alert、confirm 以及 prompt 弹框,可以使用 switch_to.alert()方法定位到。然后使用 text、accept、dismiss、send_keys 等方法来操作。

  • 操作弹窗的常用方法:

  1. switch_to.alert():获取当前页面上的警告框。

  2. text:返回 alert、confirm、prompt 中的文字信息。

  3. accept():接受现有警告框,即点击确定。

  4. dismiss():解散现有警告框,即点击取消。

  5. send_keys(keysToSend):发送文本至警告框。keysToSend 是指要发送的文本。

3.1 alert 弹框

  • 输入一段文本点击比如提交按钮,会弹出确认内容的弹框。这种场景可以使用下面的方式处理:

  • Python 语法:

"""alert弹窗获取文本与确认操作"""from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ec
def test_alert(): driver = webdriver.Chrome() driver.get("http://sahitest.com/demo/alertTest.htm") driver.find_element(By.NAME,"b1").click() # 添加显示等待,等待弹框的出现 WebDriverWait(driver,5,0.5).until(ec.alert_is_present()) # 切换到弹框 alert = driver.swithch_to.alert # 打印弹框的文本 print(alert.text) # 点击确定 alert.accept() # 点击取消啊或者关闭弹框 alert.dismiss()
复制代码

3.2 confirm 弹框

  • Python 语法:

"""confirm弹框获取文本、确认、取消操作"""import timefrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ec
def test_confirm(): driver = webdriver.Chrome() driver.get("http://sahitest.com/demo/confirmTest.htm") driver.find_element(By.NAME,"b1").click() # 添加显示等待,等待弹框的出现 WebDriverWait(driver,5).until(ec.alert_is_present()) # 切换到弹框 alert = driver.switch_to.alert # 向弹框输入一段文本 alert.send_keys("Selenium Alert弹出窗口输入信息。") # 点击确定 alert.accept()
复制代码

3.3 prompt 弹框

  • Python 语法:

"""prompt弹窗获取文本、输入内容、确认操作"""import timefrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ec
def test_prompt(): driver = webdriver.Chrome() driver.get("http://sahitest.com/demo/promptTest.htm") driver.find_element(By.NAME,"b1").click() # 添加显示等待,等待弹框的出现 WebDriverWait(driver,5).until(ec.alert_is_present()) # 切换到弹框 alert = driver.switch_to.alert # 向弹框输入一段文本 alert.send_keys("Selenium Alert弹出窗口输入信息。") # 点击确定 alert.accept()
复制代码

软件测试开发免费视频教程分享


发布于: 刚刚阅读数: 2
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试学习笔记丨Selenium文件上传弹框处理_软件测试_测试人_InfoQ写作社区