zoukankan      html  css  js  c++  java
  • selenium WebDriver 自动化测试之文件上传及弹框alert处理

    文件上传

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

    self.driver.find_element_by_id('上传按钮id').send_keys('文件路径+文件名')

    下面以百度图片搜索上传图片为例

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    """
    @author:chenshifeng
    @file:test_fileupload.py
    @time:2020/10/18
    """
    from time import sleep
    from test_selenium.base import Base
    
    
    class TestFileUpload(Base):
        def test_file_upload(self):
            self.driver.get('https://image.baidu.com/')
            self.driver.find_element_by_xpath('//*[@id="sttb"]/img[1]').click()
            sleep(2)
            self.driver.find_element_by_id('stfile').send_keys('/Users/chenshifeng/Desktop/photo.png')
            sleep(5)

    弹框处理机制

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

    操作alert常用方法

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

    举例说明:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    """
    @author:chenshifeng
    @file:test_alert.py
    @time:2020/10/18
    """
    from time import sleep
    from selenium.webdriver import ActionChains
    from test_selenium.base import Base
    
    class TestAlert(Base):
        def test_alert(self):
            self.driver.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
            self.driver.switch_to.frame('iframeResult')
            drag=self.driver.find_element_by_id('draggable')
            drop=self.driver.find_element_by_id('droppable')
            ActionChains(self.driver).drag_and_drop(drag,drop).perform()
            sleep(2)
            self.driver.switch_to.alert.accept()    # 接受警告框
            self.driver.switch_to.default_content()
            self.driver.find_element_by_id('submitBTN').click()
            sleep(2)

    end

  • 相关阅读:
    量化投资:第3节 滑点策略与交易手续费
    量化投资:第2节 择时策略的优化
    量化投资: 第1节 择时策略的开发
    一步一步,完成sparkMLlib对日志文件的处理(1)
    JAVA接口与抽象类区别
    HDU1877 又一版 A+B
    HDU4548 美素数
    超级楼梯 HDU2041
    HDU2013 蟠桃记【递推】
    HDU1262 寻找素数对
  • 原文地址:https://www.cnblogs.com/feng0815/p/13834103.html
Copyright © 2011-2022 走看看