Python+selenium+autoIT组合 处理swfupload上传图片

Python+selenium不能直接处理swfupload图片上传的问题。需要借助鼠标模拟点击按钮,调用autoit生成的exe处理程序完成。

1,selenium 元素定位到上传按钮,模拟鼠标点击

upload_20=self.brow.find_element_by_css_selector("#SWFUpload_20")
ActionChains(self.brow).click(upload_20).perform()

2,安装 autoit ,编写生成打开点击上传图片后的操作的exe程序

;ControlFocus("title","text",controlID) Edit1=Edit instance 1
ControlFocus("打开", "","Edit1")

; Wait 10 seconds for the Upload window to appear
WinWait("[CLASS:#32770]","",10)

; Set the File name text on the Edit field

ControlSetText("打开", "", "Edit1", "C:\upload_img.jpg")

Sleep(1000)

; Click on the Open button

ControlClick("打开", "","Button1");

3,最后调用autoit 生成的exe即可

参考源码

时间: 2024-10-10 09:21:27

Python+selenium+autoIT组合 处理swfupload上传图片的相关文章

Python + Selenium + AutoIt 模拟键盘实现另存为、上传、下载操作详解

前言 在web页面中,可以使用selenium的定位方式来识别元素,从而来实现页面中的自动化,但对于页面中弹出的文件选择框,selenium就实现不了了,所以就需引用AutoIt工具来实现. AutoIt介绍 AutoIt简单介绍下,AutoIt 目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务.而这是其它语言不可能做到或无可靠方法实现的(例如VBSc

python+selenium+autoit实现文件上传

问题 在做web端ui层自动化的时候会碰到文件上传的操作,经常有朋友问到,这里总结一下 解决方案 第一种:type=file的上传文件,类似如下的 使用类似这样的代码就可以完成: driver.find_element('name','file').send_keys('./小强测试品牌.png') 第二种:就是第一种除外的,实现起来较为麻烦,这里用到了autoit,大致步骤如下: 1.下载并安装autoit,之后在开始菜单可以看到如下 AutoIt Windows Info 用于识别Windo

Python Selenium 文件上传(二)

今天补充一种文件上传的方法 主要是因为工作中使用SendKeys方法不稳定,具体方法见: Python Selenium 文件上传(一) 这种方法直接通过命令行执行脚本时没有问题,可以成功上传,但是如果通过saltstack 远程控制执行时,SendKeys就定位不到窗口了. 所以采用这种新的方式来实现文件上传功能,并完美的解决了这个问题. 具体操作步骤如下: 1.下载工具 AutoIt及使用 AutoIt目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows

WEB自动化(Python+selenium)的API

在做Web自动化过程中,汇总了Python+selenium的API相关方法,给公司里的同事做了第二次培训,分享给大家                                                                                                                     WEB自动化测试培训2 课程目的 一.Webdriver API 的使用 课程内容 1    控制浏览器 Selenium 主要提供的是操作页面上各

Python selenium的js扩展实现

python写的数据采集,对一般有规律的页面用 urllib2 + BeautifulSoup + 正则就可以搞定. 但是有些页面的内容是通过js生成,或者通过js跳转的,甚至js中还加入几道混淆机制:对这种涉及页面脚本解析的内容,前面的方式便很无力. 这时我们需要能解析.运行js的引擎——浏览器,而python selenium能提供程序与浏览器的交互接口,再加上phantomjs这个可以后台运行的浏览器,即使用 selenium + phantomjs 便可以解决以上的问题. seleniu

Python selenium —— 一定要会用selenium的等待,三种等待方式解读

发现太多人不会用等待了,博主今天实在是忍不住要给大家讲讲等待的必要性. 很多人在群里问,这个下拉框定位不到.那个弹出框定位不到-各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待.殊不知,你的代码运行速度是什么量级的,而浏览器加载渲染速度又是什么量级的,就好比闪电侠和凹凸曼约好去打怪兽,然后闪电侠打完回来之后问凹凸曼你为啥还在穿鞋没出门?凹凸曼分分中内心一万只羊驼飞过,欺负哥速度慢,哥不跟你玩了,抛个异常撂挑子了. 那么怎么才能照顾到凹凸曼缓慢的加载速度呢?只有一个办法

Windows 7 32 上 selenium 2+sikuli解决swfupload类型上传插件

安装sikuli,安装完成之后,安装目录在C:\Program Files,将 安装文件复制到c盘下 配置环境变量 安装eclipse,将selenium的java版本的jar包,添加到你是使用的工程里面 在sikuli-ide下面有一个sikuli_script.jar,将它添加到你使用的工程里面 在程序里面添加上用户图片保存的目录,这一点很重要,否则会提示图片找不到 具体程序如下 package com.client.pmj; import java.util.concurrent.Time

python + selenium自动化环境常见问题小结

python + selenium自动化环境常见问题小结 (1)操作Windows窗口有三种方法,一是使用AutoIT软件生成exe程序,再用系统命令调用:二是使用SendKeys类模拟键盘操作(只能定位当前的焦点):三是使用pywinauto组件(win32gui) (2)pywinauto包只支持到python2.6版本.SendKeys包在python3.0版本上也无法安装成功. (3)执行完用例进行断言校验时,一般会获取元素的text属性,有时候在页面上查看元素有text值,而获取的为空

Python+Selenium笔记(十四)鼠标与键盘事件

 (一) 前言 Webdriver高级应用的API,允许我们模拟简单到复杂的键盘和鼠标事件,如拖拽操作.快捷键组合.长按以及鼠标右键操作,都是通过使用webdriver的Python API 中的ActionChains类实现的. 调用ActionChains类方法时,不会立即执行,而是将所有操作都存放在一个队列里,当调用perform()方法时,队列里的操作会依次执行 (二) 与键盘和鼠标事件有关的一些重要的方法 方法 简单说明 click(on_element=None) 单击元素 on_e