本节主要介绍通过程序代码无人干预地上传文件附件,并进行提交操作。

1、使用send_keys方法上传文件

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/2/14 18:48
# @Author : solo
# @Site :
# @File : webdriver_11_7.py
# @Software: PyCharm from selenium import webdriver
import unittest
import time
import traceback
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException,NoSuchElementException class TestDemo(unittest.TestCase): def setUp(self):
#启动浏览器
self.driver = webdriver.Firefox() def test_uploadFileBySendKeys(self):
url = "d:\\uploadFile.html"
#访问自定义网页
self.driver.get(url)
try:
#创建一个显式等待对象
wait = WebDriverWait(self.driver,10,0.2)
#显式等待判断被测试页面上的上传文件按钮是否处于可被单击状态
wait.until(EC.element_located_to_be_clickable((By.ID,'file')))
except TimeoutException,e:
#捕获TimeoutException异常
print traceback.print_exc()
except NoSuchElementException,e:
#捕获NoSuchElement异常
print traceback.print_exc()
except Exception,e:
#捕获其他异常
print traceback.print_exc() else:
#查找页面上ID属性值为‘file’的文件上传框
fileBox = self.driver.find_element_by_id("file")
#在文件上传框的路径框里输入要上传的文件路径
fileBox.send_keys("c:\\test.txt")
#暂停查看上传的文件
time.sleep(4) #找到页面上ID属性值为“filesubmit”的文件提交按钮对象
fileSubmitButton = self.driver.find_element_by_id("filesubmit")
#单击提交按钮,完成文件上传操作
fileSubmitButton.click()
#因为文件上传需要时间,所以这里可以添加显式等待场景,
#判断文件上传成功后,页面是否跳转到文件上传成功的页面
#通过EC.title_is()方法判断跳转后的页面的Title
#值是否符合期望,如果匹配将继续执行后续代码 #如果时间了parse_file.jsp页面,并且可以成功调转,
#可以将下面代码取消注释,断言文件上传成功
#wait.until(EC.title_is(u"文件上传成功")) def tearDown(self):
#退出浏览器
self.driver.quit() if __name__ == "__main__":
unittest.main()

  

webdriver高级应用 -无人干预地自动上传文件的更多相关文章

  1. webdriver高级应用- 无人工干预地自动上传附件

    方法一:使用webdriver的send_keys方法上传文件,代码如下: #encoding=utf-8 from selenium import webdriver import unittest ...

  2. Selenium WebDriver高级应用

    WebDriver高级应用 public class Demo4 { WebDriver driver; // @BeforeMethod:在每个测试方法开始运行前执行 @BeforeMethod p ...

  3. (四) 一起学 Unix 环境高级编程(APUE) 之 系统数据文件和信息

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  4. 【转】FTP自动上传文件的perl脚本以及配置文件

    这个perl文件将执行的任务是, 按照指定的文件夹目录,自动将该文件夹下的所有文件上传到指定ftp站点的指定目录下 本应用程序设计的几个基本理念是:工具箱再利用:尽可能利用已有的工具:简化运行步骤:不 ...

  5. ftp/sftp定时自动上传文件脚本(CentOS)

    1.ftp自动上传文件脚本 #!/bin/bash ftp -n<<! open 192.168.220.129 user ls toor binary hash cd /path/to/ ...

  6. webdriver高级应用- 使用日志模块记录测试过程中的信息

    在自动化脚本执行过程中,使用Python的日志模块记录在测试用例执行过程中一些重要信息或者错误日志等,用于监控和后续调试脚本. 在pycharm下新建工程,并创建Log.py.Logger.conf以 ...

  7. Selenium WebDriver高级用法

    Selenium GitHub地址 选择合适的WebDrvier WebDriver是一个接口,它有几种实现,分别是HtmlUnitDrvier.FirefoxDriver.InternetExplo ...

  8. webdriver高级应用(2) - 滚动条操作

    webdriver高级应用(2) - 滚动条操作 #-*- coding:utf-8 -*- from selenium import webdriver import unittest import ...

  9. webdriver高级应用- 右键另存为下载文件

    1.要使用右键另存,需要先按照第三方工具AutoIt: 链接: https://pan.baidu.com/s/12aBBhOOTmyQpH9hukt0XGA 密码: fcdk 2.创建一个名为loa ...

随机推荐

  1. 扫描器是如何判定有xss漏洞的

    这个问题,看似简单,实则触及到很多人的知识盲区 我们都知道,弹窗就能判定这个页面存在xss, 那么扫描器是怎么判断的呢,或者说扫描器是怎么判断是否弹窗的呢 测试发现 当响应的头中content-typ ...

  2. Eclipse直接运行算法第4版例子(重定向和读取指定路径文件)

    Eclipse直接运行算法第4版例子(重定向和读取指定路径文件)   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://b ...

  3. linux入门系列6--软件管理之rpm和yum仓库

    前面系列文章中,我们对vi编辑器和46个基本命令进行了介绍,本文将演示在centos7下使用RPM和YUM安装和管理软件. 一.RPM软件包管理器 1.1 RPM背景介绍 ​ RPM(RedHat P ...

  4. pip 下载源更换

    Python博大精深之处在于丰富的库,而目前最方便的下载库的方法无疑是pip.但是由于国内的网络环境导致,好多库下载是在太慢了,原因大家都懂得.. 一.临时修改 使用pip的时候加入参数 -i pip ...

  5. javascript 内置对象和方法

    一.自定义对象 方法1 /* 自定义对象 */ var sex= "gender" var person={"name": "tom", & ...

  6. 12.方法重载overload

    方法重载:overload 重载就是在一个类中,有相同的函数名称,但形参不同的函数 方法重载的规则: 方法名称必须相同 参数列表必须不同(个数不同.或类型不同.参数排列顺序不同等) 方法的返回值类型可 ...

  7. 基于javaSwing的贪食蛇游戏

    这个项目时,是我好几年前写的了.但对刚入门,或者想瞧瞧java的图形的界面swing的同学,还是有点用处的. 在这推荐给你. 涉及技术点 swing,多线程,文件读写,多媒体文件播放等 游戏简介 该游 ...

  8. 【javaWeb】HttpServletRequest常用获取URL的方法

    1.request.getRequestURL() 返回的是完整的url,包括Http协议,端口号,servlet名字和映射路径,但它不包含请求参数. 2.request.getRequestURI( ...

  9. CQBZOJ 避开怪兽

    题目描述 给出一个N行M列的地图,地图形成一个有N*M个格子的矩阵.地图中的空地用'.'表示.其中某些格子有怪兽,用'+'表示.某人要从起点格子'V'走到终点格子'J',他可以向上.下.左.右四个方向 ...

  10. pip install 清华源加速

    经常要通过pip install安装需要的包,但是每当下载的文件比较大时,网速不够快,会导致报错.所以采用清华源来加速 清华大学开源软件镜像站 https://mirrors.tuna.tsinghu ...