webdriver高级应用 -无人干预地自动上传文件
本节主要介绍通过程序代码无人干预地上传文件附件,并进行提交操作。
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高级应用 -无人干预地自动上传文件的更多相关文章
- webdriver高级应用- 无人工干预地自动上传附件
方法一:使用webdriver的send_keys方法上传文件,代码如下: #encoding=utf-8 from selenium import webdriver import unittest ...
- Selenium WebDriver高级应用
WebDriver高级应用 public class Demo4 { WebDriver driver; // @BeforeMethod:在每个测试方法开始运行前执行 @BeforeMethod p ...
- (四) 一起学 Unix 环境高级编程(APUE) 之 系统数据文件和信息
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- 【转】FTP自动上传文件的perl脚本以及配置文件
这个perl文件将执行的任务是, 按照指定的文件夹目录,自动将该文件夹下的所有文件上传到指定ftp站点的指定目录下 本应用程序设计的几个基本理念是:工具箱再利用:尽可能利用已有的工具:简化运行步骤:不 ...
- ftp/sftp定时自动上传文件脚本(CentOS)
1.ftp自动上传文件脚本 #!/bin/bash ftp -n<<! open 192.168.220.129 user ls toor binary hash cd /path/to/ ...
- webdriver高级应用- 使用日志模块记录测试过程中的信息
在自动化脚本执行过程中,使用Python的日志模块记录在测试用例执行过程中一些重要信息或者错误日志等,用于监控和后续调试脚本. 在pycharm下新建工程,并创建Log.py.Logger.conf以 ...
- Selenium WebDriver高级用法
Selenium GitHub地址 选择合适的WebDrvier WebDriver是一个接口,它有几种实现,分别是HtmlUnitDrvier.FirefoxDriver.InternetExplo ...
- webdriver高级应用(2) - 滚动条操作
webdriver高级应用(2) - 滚动条操作 #-*- coding:utf-8 -*- from selenium import webdriver import unittest import ...
- webdriver高级应用- 右键另存为下载文件
1.要使用右键另存,需要先按照第三方工具AutoIt: 链接: https://pan.baidu.com/s/12aBBhOOTmyQpH9hukt0XGA 密码: fcdk 2.创建一个名为loa ...
随机推荐
- 【原创】(十五)Linux内存管理之RMAP
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- P2871 [USACO07DEC]手链Charm Bracelet(01背包模板)
题目传送门:P2871 [USACO07DEC]手链Charm Bracelet 题目描述 Bessie has gone to the mall's jewelry store and spies ...
- Linux Cgroup浅析
cgroup从2.6.4引入linux内核主线,目前默认已启用该特性.在cgroup出现之前,只能对一个进程做资源限制,比如通过sched_setaffinity设置进程cpu亲和性,使用ulimit ...
- 【Javaweb学习笔记】XML和约束模式
一.XML语法 xml 可扩展标记语言,w3c组织发布的,用于保存有关系的数据,作为配置文件,描述程序模块之间的关系 xml 文件开头必须包括下面的标签: <?xml version=" ...
- Js字符串按数量分组
代码: function group(ss,step) { var r = []; function doGroup(s) { if (!s) return; r.push(s.substr(0, s ...
- OffSet和Utc
DateTime dtt = System.DateTime.Now ;//utcnow是格林威治的时间,与北京时间-8 strin(dtt); public static string strin( ...
- 测试必备之Java知识(三)—— 集合、Map相关
集合相关 List.Set.Map的区别 类型 描述 List 允许重复对象,可插入多个null元素,有序 Set 不允许重复对象,只允许一个null元素,无序 Map 不是collection的子接 ...
- pom文件继承与聚合
1.简介 pom.xml文件是Maven进行工作的主要配置文件.在这个文件中我们可以配置Maven项目的groupId.artifactId和version等Maven项目必须的元素:可以配置Mave ...
- LeetCode10 Hard,带你实现字符串的正则匹配
本文始发于个人公众号:TechFlow 这是LeetCode的第10题,题目关于字符串的正则匹配,我们先来看题目相关信息: Link Regular Expression Matching Diffi ...
- Django 导入配置文件
from django.conf import settings