selenium文件上传和弹框处理

文件上传

input 标签可以直接使用send_keys(文件地址)上传文件

用法:
el = driver.find_element_by_id('上传按钮id')
el.send_keys("文件路径+文件名")

demo, 百度图片上传为例子

from base import *


class TestUpload(Base):
    def test_upload(self):
        url = 'https://image.baidu.com/'
        self.driver.get(url)
        self.driver.find_element_by_xpath("//img[@class='st_camera_off']").click()
        self.driver.find_element_by_id("stfile").send_keys("D:\\my_project\\git_deve\\development\\img\\雪球自选设置测试用例.png")  # 发送文件
        time.sleep(3)


if __name__ == '__main__':
    pytest.main(["-vs", "test_upload.py"])

弹框处理机制

操作alert常用方法:

  • switch_to.alert(): 获取当前页面上的警告框
  • text: 返回alert / confirm / prompt 中的文字系信息
  • accept() : 接受现有警告框
  • dismiss(): 解散现有警告框
  • send_keys(KeysToSend) : 发送文本至警告框。 KeysToSend: 将文本发送至警告框

测试案例:

  • 打开网页 菜鸟教程在线编辑器
  • 操作窗口右侧页面,将元素1拖拽到元素2
  • 这时候会有一个alert弹框,点击弹框中的确定
  • 然后再按点击运行
  • 关闭网页
from base import *
from selenium.webdriver import ActionChains


class TestUpload(Base):
    @pytest.mark.skip
    def test_upload(self):
        url = 'https://image.baidu.com/'
        self.driver.get(url)
        self.driver.find_element_by_xpath("//img[@class='st_camera_off']").click()
        self.driver.find_element_by_id("stfile").send_keys("D:\\my_project\\git_deve\\development\\img\\雪球自选设置测试用例.png")  # 发送文件
        time.sleep(3)

    def test_la(self):
        url = "https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable"
        self.driver.get(url)
        self.driver.switch_to.frame("iframeResult")  # 可以参考 https://www.cnblogs.com/c-keke/p/14942162.html
        draggable = self.driver.find_element_by_xpath("//div[@id='draggable']")  # 拿起
        droppable = self.driver.find_element_by_xpath("//div[@id='droppable']")  # 放下
        action = ActionChains(self.driver)  # 初始化动作链, 可以参考:https://www.cnblogs.com/c-keke/p/14928477.html
        action.drag_and_drop(draggable, droppable).pause(2).perform()
        time.sleep(1)
        self.driver.switch_to.alert.accept()  # 点击确定这个弹出框
        self.driver.switch_to.default_content()  # 返回默认的节点
        self.driver.find_element_by_xpath("//button[contains(text(),'点击运行')]").click()


if __name__ == '__main__':
    pytest.main(["-vs", "test_upload.py"])

完。

最后:如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助,朋友们如果需要可以自行免费领取 【保证100%免费】

软件测试面试题合集

我们进阶学习自动化测试必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

视频文档获取方式:

猜你喜欢

转载自blog.csdn.net/m0_75277660/article/details/130624577
今日推荐