本节重点:

  • 上传文件

文件上传操作也比较常见功能之一,上传功能没有用到新有方法或函数,关键是思路。

上传过程一般要打开一个本地窗口,从窗口选择本地文件添加。所以,一般会卡在如何操作本地窗口添加上传文件。

其实,在selenium  webdriver 没我们想的那么复杂;只要定位上传按钮,通send_keys添加本地文件路径就可以了。绝对路径和相对路径都可以,关键是上传的文件存在。下面通地例子演示。

upload_file.html

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>upload_file</title>
<script type="text/javascript" async=""
src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
"></script>
<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" />
<script type="text/javascript">
</script>
</head>
<body>
<div class="row-fluid">
<div class="span6 well">
<h3>upload_file</h3>
<input type="file" name="file" />
</div>
</div>
</body>
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
</html>

upload.py

#coding=utf-8
from selenium import webdriver
import os,timedriver = webdriver.Firefox()#脚本要与upload_file.html同一目录
file_path =  'file:///' + os.path.abspath('upload_file.html')
driver.get(file_path)#定位上传按钮,添加本地文件
driver.find_element_by_name("file").send_keys('D:\\selenium_use_case\upload_file.txt')
time.sleep(2)driver.quit()

其它有些应用不好找,所以就自己创建页面,这样虽然麻烦,但脚本代码突出重点。

这里找一139邮箱的实例,有帐号的同学可以测试一下~!

(登陆基础版的139邮箱,网盘模块上传文件。)

139upload.py

#coding=utf-8
from selenium import webdriver
import os,timedriver = webdriver.Firefox()driver.get("http://m.mail.10086.cn")
driver.implicitly_wait(30)#登陆
driver.find_element_by_id("ur").send_keys("手机号")
driver.find_element_by_id("pw").send_keys("密码")
driver.find_element_by_class_name("loading_btn").click()
time.sleep(3)#进入139网盘模块
driver.find_element_by_xpath("/html/body/div[3]/a[9]/span[2]").click()
time.sleep(3)#上传文件
driver.find_element_by_id("id_file").send_keys('D:\\selenium_use_case\upload_file.txt')
time.sleep(5)driver.quit()

轻松自动化---selenium-webdriver(python) (九)相关推荐

  1. Selenium WebDriver + python 自动化测试框架

    目标 组内任何人都可以进行自动化测试用例的编写 完全分离测试用例和自动化测试代码,就像写手工测试用例一下,编写excel格式的测试用例,包括步骤.检查点,然后执行自动化工程,即可执行功能自动化测试用例 ...

  2. selenium webdriver (python)的基本用法一

    阅在线 AIP 文档: http://selenium.googlecode.com/git/docs/api/py/index.html 目录 一.selenium+python 环境搭建..... ...

  3. selenium webdriver (python) 第一版PDF

    前言 如果你是一位有python语言基础的同学,又想通过python+ selenium去实施自动化,那么你非常幸运的找到了这份文档,我也非常荣幸能为你的自动化学习之路带来一丝帮助. 其实,我在sel ...

  4. python webdriver点击指令_测开系列Selenium Webdriver Python(20)--Webdriver运行原理

    Webdriver运行原理 转帖请注明出处!谢谢 在开发Webdriver的自动化脚本过程中,Webdriver后台在创建WebDriver实例的过程中,先确认浏览器的原生组件中是否存在可匹配的版本. ...

  5. 测开系列Selenium Webdriver Python(21)--元素定位2

    以上学习的是element的基本属性和方法,那么验证点添加的技巧和方式是什么呢?我们知道自动化的过程就是人的手工测试的过程,在手工测试中需要人来判断业务是否达到需求要求,那么在自动化脚本中就要加入程序 ...

  6. 50+道自动化/Selenium/性能/Python面试题

    写在前面 公司要求招一名自动化测试,能力要求不高,1年左右自动化经验+部分性能经验即可,让我出一份题,我就百度+公司项目遇到的问题,出了一份,出题整体思路是:接口自动化问题+性能问题+规划的ui.ap ...

  7. Linux运行webdriver,linux - 在chrome中运行Selenium WebDriver python绑定

    我在使用Selenium时遇到了问题. 对于我的项目,我必须使用Chrome. 但是,在使用Selenium启动它后,我无法连接到该浏览器. 出于某种原因,Selenium无法单独找到Chrome. ...

  8. selenium webdriver python 元素操作

    常用操作 click 点击某个元素 driver.find_element_by_id("su").click() clear driver.find_element_by_id( ...

  9. selenium webdriver python 环境搭建

    1. 安装python https://www.python.org/getit/ 选择2.7版本,下载安装即可. 验证是否安装成功:打开cmd,输入"python -V",显示p ...

  10. selenium webdriver(python)_selenium、webdriver及浏览器的关系及对应版本安装

    selenkium支持多种浏览器,包括Chrome,Safari,Firefox.Edge 等,我们以Chrome浏览器为例学习.先完成以下3步: 1 selenium安装 安装selenium和安装 ...

最新文章

  1. Android窗口管理服务WindowManagerService计算窗口Z轴位置的过程分析
  2. 数据库死锁查询及处理
  3. 机器人学中的一些概念3——雅克比矩阵
  4. 符合c语言常量12abc,《C语言》试题abc合2006上.doc
  5. 通过swagger下载的文件乱码解决方法,求解
  6. SOME/IP报文格式-Message ID
  7. termux配置python安装kali_利用termux安装kali
  8. 纯屏和液晶显示器有什么区别
  9. 人工智能终将自我进化?排除无用功能,让自己更加完美?
  10. 1074 Reversing Linked List
  11. 华师大的计算机专业属于提前批吗,关于华师大、上师大提前批的问题
  12. 有没有测试牙齿需不需要修正的软件,测一测,你的牙齿需要矫正吗?
  13. 联想笔记本重装系统无法进入记录
  14. python内置函数返回元素个数_Python内置函数
  15. 安装NTFS For Mac时显示文件已损坏怎么办
  16. 如何在以太坊网络上发布自己的代币
  17. 【数据结构】— 「时间复杂度」与「空间复杂度」
  18. 风之语.惊闻周星驰电影票房超过30亿RMB
  19. C++语言——求圆柱表面积
  20. 在伦敦金中学画趋势线

热门文章

  1. storm 简介及单机版安装指南
  2. 安卓应用自动化测试工具汇总
  3. 关于 Boost.PropertyTree
  4. [推荐]番茄工作法——专治拖延症、精神涣散、再要五分钟综合症
  5. UART0串口编程系列(四)
  6. Struts2和Struts1.x的全面比较一
  7. pythondjango搭建数据管理平台,使用Django快速搭建简单的数据管理后台
  8. 模板模式在源码中的体现
  9. SpringMVC的请求-文件上传-客户端表单实现
  10. Spring源码版本命名规则及下载安装(下)笔记