selenium+Python 上传文件

本文介绍如何使用Selenium和Python实现文件上传功能。通过send_keys()方法指定文件路径完成上传操作。示例中提供了HTML文件及Python脚本的具体实现。

selenium+Python 上传文件
使用send_keys()方法,跟一个本地的文件路径,到达上传文件目的。

(备注:该例子是根据‘虫师’例子做了补充)


第一步:新建一个txt文件,把下面的代码复制进去,然后重命名为upload_file.html文件,将此文件放置与python文件目录相同的地方

<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>






第二步写见.py文件:

#-*-coding:utf-8-*-
from selenium import webdriver
import os
import time

driver = webdriver.Firefox()
file_path = 'file:///'+os.path.abspath('upload_file.html')
driver.get(file_path)

#使用send_keys('绝对路径')方法上传文件
#driver.find_element_by_name('file').send_keys('C:\Users\Think\Pictures\file\note_book.jpg')

#使用send_keys('相对路径')方法上传文件
driver.find_element_by_name('file').send_keys('C:\\\Pictures\\note_book.jpg')
time.sleep(2)

driver.quit()


在这里主要强调的是绝对路径与相对路径的使用。

虫师文献:
selenium借助AutoIt识别上传(下载)详解
http://www.cnblogs.com/fnng/p/4188162.html


此文章转载至 http://blog.youkuaiyun.com/u013921325/article/details/51113381




### 使用SeleniumPython上传文件并提交信息 为了实现自动化操作,如上传文件和提交表单数据,可以利用Selenium库来模拟浏览器行为。下面是一个具体的例子,展示如何通过Python脚本完成这些任务。 #### 设置环境 确保安装了必要的软件包: ```bash pip install selenium ``` #### 编写代码 创建一个简单的测试案例,用于登录到指定网站,并执行文件上传动作: ```python from selenium import webdriver import time # 初始化WebDriver实例 (这里以Chrome为例) driver = webdriver.Chrome() try: # 打开目标网页 driver.get('http://example.com/login') # 替换为目标网址 # 定位用户名输入框并填写内容 username_field = driver.find_element_by_name('id') username_field.send_keys('your_username') # 密码字段填充 password_field = driver.find_element_by_name('password') password_field.send_keys('your_password') # 提交表单 login_button = driver.find_element_by_css_selector('[type="submit"]') login_button.click() # 等待页面加载完毕 time.sleep(5) # 转向至含有文件上传功能的页面部分 driver.get('http://example.com/upload_page') # 文件上传页URL # 查找文件输入控件并通过sendKeys方法发送本地路径给它 file_input = driver.find_element_by_id('fileInputId') # 假设ID为'fileInputId' file_path = r'E:\SJTU\course=\filename=毕业证书.jpg' # 需要实际存在的文件路径 file_input.send_keys(file_path) # 如果有确认按钮,则点击之以触发上传过程 submit_btn = driver.find_element_by_class_name('upload-btn-classname') # 按钮类名需替换为真实值 submit_btn.click() finally: # 关闭浏览器窗口 time.sleep(10) # 给予足够时间观察结果后再关闭 driver.quit() ``` 这段程序首先访问了一个假设性的登录界面,在成功验证身份之后转向另一个包含文件上传选项卡的位置;接着定位到了相应的HTML元素(比如`<input type='file'>`),并向其传递绝对磁盘位置作为参数从而启动上传流程[^2]。 值得注意的是,上述示例中的某些细节可能需要依据具体应用场景做出调整——例如元素的选择器表达式应当匹配所交互站点的实际结构特点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值