一、环境准备:

1.可以autoit官网上下载,安装 http://www.autoitscript.com/site/

 2.AutoIt里面几个菜单功能介绍:

  • SciTE Script Editor 编辑器,在这里编写AutoIt脚本
  • AutoIt Windows Info 元素定位器,用于识Windows控件信息
  • Run Script 执行AutoIt脚本
  • Compile Script to.exe 将AutoIt生成 .exe 可执行文件

3.autoit 在线文档,是中文版http://www.autoitx.com/Doc/

二、脚本实现:

1.先准备好web页面的环境,以博客园的上传图片为例:添加新随笔>点图片上传>上传本地图片>弹出选择图片界面,在这里不要动了

2.打开 SciTE Script Editor编辑器,开始写脚本,代码非常简单只有四行

WinActivate("打开");

ControlSetText("打开", "", "Edit1", "F:\11.png");

Sleep(2000);

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

3.编辑完成后执行,tools>go ;或者按f5执行,执行完之后就能看到图片上传成功了。

4.autoit几个常用的语法

  • WinActivate("title") 聚焦到指定活动窗口
  • ControlFocus ( "title", "窗口文本", controlID) 设置输入焦点到指定窗口的某个控件上;
  • WinWait ( "title" , "窗口文本" , 超时时间 ) 暂停脚本的执行直至指定窗口存在(出现)为止;
  • ControlSetText ( "title", "窗口文本", controlID, "新文本" ) 修改指定控件的文本;
  • Sleep ( 延迟 ) 使脚本暂停指定时间,单位是毫秒;
  • ControlClick ( "title", "窗口文本", 控件ID , 按钮 , 点击次数 ) 向指定控件发送鼠标点击命令;

三、元素定位

1.Find Tool 查看元素属性,用鼠标按住Find Tool下的图标,然后拖拽到你想定位的元素上

2.查看controlID,controlID即AutoIt Window Info识别出的Class和Instance的拼接

四、导出exe文件

在应用程序里面找到打开Compile Script to.exe工具,将刚才导出的.au3文件转化成.exe文件


from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import os,time '''登录博客'''
driver = webdriver.Chrome()
driver.get("https://passport.cnblogs.com/user/signin")
driver.implicitly_wait(10) """账号和密码登录"""
driver.find_element_by_id("LoginName").send_keys("xxxx")
driver.find_element_by_id("Password").send_keys("xxxx")
driver.find_element_by_id("IsRemember").click()
login = WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.ID,"submitBtn")))
login.click() driver.find_element_by_link_text("我的博客").click()
time.sleep(2)
driver.find_element_by_link_text("发新随笔").click()
time.sleep(2)
for i in range(10):
# 点开编辑器图片
driver.find_element_by_css_selector("img.mceIcon").click()
time.sleep(3)
#定位所有iframe,取第二个
iframe = driver.find_elements_by_tag_name("iframe")[1]
#切换到iframe上
driver.switch_to_frame(iframe)
# print(iframe)
#点击上传文件按钮
# submit = WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"qq-upload-button")))
# submit.click()
time.sleep(3)
driver.find_element_by_class_name("qq-upload-button").click()
# js = 'document.getElementByClassName("qq-upload-button").click();'
# driver.execute_script(js)
# 执行autoit上传文件
# os.system(r"C:\Users\Administrator\Desktop\sendfile.exe")
#批量上传图片
file_name = "F:\\12\\%s.png"%i
os.system(r"C:\Users\Administrator\Desktop\send.exe %s"%file_name)
time.sleep(3)
# 切回到主页面
driver.switch_to_default_content()

selenium3 + python - autoit上传文件的更多相关文章

  1. 关于IE9中webdiriver使用autoit上传文件报错

    在ie9中, type="file"的元素是通过js打开的 webdirver结合autoit上传文件时,会报拒绝访问的错 sciTE编辑器中是这样写的: #include < ...

  2. 关于Autoit上传文件的问题

    Autoit上传文件需要安装两个软件: 使用这个做文件上传时:在代码中需要添加的代码如下: Runtime.getRuntime().exec("d:/zhpg.exe"); D盘 ...

  3. python requests上传文件 tornado 接收文件

    requests 上传文件 import requests def images(): url = 'http://127.0.0.1:8889/upload/image' files = {'fil ...

  4. selenium2用AutoIt上传文件

    1.标签是input,如下图所示: WebElement e1= driver.findElement(By.id("load"));//输入要上传文件的地址e1.sendKeys ...

  5. python实现上传文件到linux指定目录

    今天接到一个小需求,就是想在windows环境下,上传压缩文件到linux指定的目录位置并且解压出来,然后我想了一下,这个可以用python试试写下. 环境:1.linux操作系统一台2.window ...

  6. Python判断上传文件类型

    在开发上传服务时,经常需要对上传的文件进行过滤. 本文为大家提供了python通过文件头判断文件类型的方法,非常实用. 代码如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  7. Python - Django - 上传文件

    upload.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  8. python+selenium上传文件——input标签

    我们要区分出上传按钮的种类,大体上可以分为两种: 第一种普通上传:将本地文件路径作为一个值,放在input标签中,通过form表单将这个值提交给服务器: 第二种插件上传:是通过Flash.JavaSc ...

  9. Python requests上传文件demo

    #!/usr/bin/env python # -*- coding: utf-8 -*- import requests headers = {'uuid': '5cb572b7-c0a7-4d90 ...

随机推荐

  1. db2 group by的疑惑。

    按借据号分组,显示每组的条数:

  2. Vue2 + Koa2 实现后台管理系统

    看了些 koa2 与 Vue2 的资料,模仿着做了一个基本的后台管理系统,包括增.删.改.查与图片上传. 工程目录: 由于 koa2 用到了 async await 语法,所以 node 的版本需要至 ...

  3. CCF201512-2 消除类游戏 java(100分)

    试题编号: 201512-2 试题名称: 消除类游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进 ...

  4. 一个DBA对于开发人员使用MySQL的tips

    http://neoremind.net/2011/06/%E4%B8%80%E4%B8%AAdba%E5%AF%B9%E4%BA%8E%E5%BC%80%E5%8F%91%E4%BA%BA%E5%9 ...

  5. URAL 1108 简单的树形dp背包问题

    题目大意: 一颗苹果树上,每条边都对应了一个权值,最后留下包括root : 1在的含有 m 条边的子树 , 希望留下的子树中权值之和最大 这里保留m条边,我们可以看作是保留了 m + 1 个点 令dp ...

  6. hdu 2089 记忆化搜索写法(数位dp)

    /* 记忆化搜索,第二维判断是否是6 */ #include<stdio.h> #include<string.h> #define N 9 int dp[N][2],digi ...

  7. 从一行代码开始,浅谈python字符串格式化

    今天看到了一行这样的代码: boundary = '%.32x' % random.randint(0, 256**16) 我知道这是一个生成格式化字符串的语句,它将随机生成的一个32位16进制数,将 ...

  8. 2.2 convex hull凸包

    1.定义:一组平面上的点,求一个包含所有点的最小的凸多边形,就是凸包问题. 利用编程解决凸包问题,应该得到一组逆时针的顶点的顺序集合,在边上但不是顶点,则不包含在集合里. 2.机械的方法:将点所在的位 ...

  9. codevs1314 寻宝

    题目描述 Description 传说很遥远的藏宝楼顶层藏着诱人的宝藏.小明历尽千辛万苦终于找到传说中的这个藏宝楼,藏宝楼的门口竖着一个木板,上面写有几个大字:寻宝说明书.说明书的内容如下: 藏宝楼共 ...

  10. SIGSEGV 和 SIGBUS & gdb看汇编

    参考这篇文章: http://blog.chinaunix.net/uid-24599332-id-2122898.html SIGBUS和SIGSEGV也许是我们在平时遇到的次数最多的两个内存错误信 ...