python selenium处理windows窗口
selenium本身处理不了windows窗口,需要借助,PyAutoit包 与autoit工具
这里以文件上传窗口为例:
1.安装python pyauto包
pip install PyAutoit
2.安装autoit工具,下载地址如下,这里使用的是autoit3版本
https://www.autoitscript.com/site/autoit/downloads/
3.处理文件上传window窗口

需要完成以下步骤:
1>.输入文件路径
2>.点击,打开按钮
4.文件上传autoit python代码实现
1>通过auto软件,抓取上传窗口,属性
2>引用python引用autoit包
import autoit #设置焦#点
autoit.control_focus("打开","[Class:Edit; instance:1]")
#输入文本
autoit.control_set_text("打开","[Class:Edit; instance:1]",r"C:\Users\Administrator\Desktop\226523.jpg")
# 单击按钮
autoit.control_click("打开","[Class:Button; instance:1]")
5.代码分解
以上三行代码即可,当然,你可能不太明白这些参数都是什么意思,那么下边我们分别看一下原型。
Title:auto抓取到的Title如下图
control:就是autoit抓出的control中的属性。
control,在python代码中用 "[属性:属性值;属性2:属性值2]" 表示

1>autoit.control_focus():
@api.check(2, "Window/Control could not be found")
def control_focus(title, control, **kwargs):
""" :param title:
:param control:
:param kwargs:
:return:
"""
text = kwargs.get("text", "") ret = AUTO_IT.AU3_ControlFocus(
LPCWSTR(title), LPCWSTR(text), LPCWSTR(control))
return ret
2>autoit.control_set_text():
@api.check(2, "Window/Control could not be found")
def control_set_text(title, control, control_text, **kwargs):
""" :param title:
:param control:
:param control_text:
:param kwargs:
:return:
"""
text = kwargs.get("text", "") ret = AUTO_IT.AU3_ControlSetText(
LPCWSTR(title), LPCWSTR(text), LPCWSTR(control), LPCWSTR(control_text)
)
return ret
3>autoit.control_click():
@api.check(2, "send click message failed")
def control_click(title, control, **kwargs):
""" :param title:
:param text:
:param control:
:param button:
:param clicks:
:param x:
:param y:
:return:
"""
text = kwargs.get("text", "")
button = kwargs.get("button", "left")
clicks = kwargs.get("clicks", 1)
x = kwargs.get("x", INTDEFAULT)
y = kwargs.get("y", INTDEFAULT) ret = AUTO_IT.AU3_ControlClick(LPCWSTR(title), LPCWSTR(text),
LPCWSTR(control), LPCWSTR(button),
INT(clicks), INT(x), INT(y))
return ret
总结:
1>安装(auit和pyautoit包)
2>抓取(auit抓取上传窗口)
3>编写python代码(设置焦点,输入文本,点击上传)
注意,可以加入一些等待时间,还控制焦点与输入间隔
python selenium处理windows窗口的更多相关文章
- python selenium 处理悬浮窗口(baidu tj_more)
python selenium 处理悬浮窗口 from selenium.webdriver.common.action_chains import ActionChainsActionChains( ...
- python selenium打开新窗口,多窗口切换
# coding=utf-8 from selenium import webdriver browser=webdriver.Firefox() browser.maximize_window() ...
- python+selenium之多窗口切换
#打开浏览器driver = webdriver.Firefox()driver.get(url)#获取当前窗口now_handle=driver.current_window_handle # 获取 ...
- python+selenium控制浏览器窗口(刷新、前进、后退、退出浏览器)
调用说明: driver.属性值 变量说明: 1.driver.current_url:用于获得当前页面的URL 2.driver.title:用于获取当前页面的标题 3.driver.page_so ...
- python selenium无法最大化窗口
问题原因:报错提示cannot get automation extension根据各种调试,发现是对应版本不对,上图发现selenium的版本是57.0.2987.133,需要driver为2.29 ...
- Python+selenium之多窗口,句柄
- Python+selenium自动化测试中Windows窗口跳转方法
Python+selenium自动化测试中Windows窗口跳转方法 #第一种方法 #获得当前窗口 nowhandle=driver.current_window_handle #打开弹窗 drive ...
- Python+Selenium - windows安全中心的弹窗(账号登录)
当出现如下图所示的 Windows安全中心弹窗,需要输入用户名和密码时 如何用Python+selenium跳过这个登录. 步骤: 1.在注册表中三个位置各添加两个东西:iexplore.exe 和 ...
- [Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium
最近准备深入学习Python相关的爬虫知识了,如果说在使用Python爬取相对正规的网页使用"urllib2 + BeautifulSoup + 正则表达式"就能搞定的话:那么动态 ...
随机推荐
- SQL Server数据库中导入导出数据及结构时主外键关系的处理
2015-01-26 软件开发中,经常涉及到不同数据库(包括不同产品的不同版本)之间的数据结构与数据的导入导出.处理过程中会遇到很多问题,尤为突出重要的一个问题就是主从表之间,从表有外检约束,从而导致 ...
- Redis 数据结构之dict
上篇文章<Redis数据结构概述>中,了解了常用数据结构.我们知道Redis以高效的方式实现了多种数据结构,因此把Redis看做为数据结构服务器也未尝不可.研究Redis的数据结构和正确. ...
- 多台CentOS服务器下实现SSH免密码登录
ROOT用户下实现SSH免密码登录 第一步:进入目录/root/.ssh $ cd /root/.ssh/ 执行以下命令,会在当前目录下生成公钥(id_rsa.pub)/私钥(id_rsa)对 第二 ...
- 理解Python协程:从yield/send到yield from再到async/await
Python中的协程大概经历了如下三个阶段:1. 最初的生成器变形yield/send2. 引入@asyncio.coroutine和yield from3. 在最近的Python3.5版本中引入as ...
- impala
impala 1.impala是什么: impala是基于hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的metastore中. ...
- eclipse 下载安装单元测试log4j的配置与搭建
搭建log4j的具体步骤 1.下载jar包放在lib 拓展库中 百度云下载 地址 链接:https://pan.baidu.com/s/1Cvb22kCJcymORehwhKnCrQ 提取码:b55m ...
- 在iphone的safari浏览器中,拨打电话,出现系统异常弹框
这是系统级别的问题,暂时无法解决. IPHONE的safari浏览器电话拨打,前两次点击拨打按钮,会正常弹出系统弹框包含(电话号码,取消,呼叫). 第3次往后,点击按钮会出现另一种系统弹框包含(已阻止 ...
- 4.2模拟赛 wormhole(期望DP Dijkstra)
\(\color{white}{orzmjt又切题了...}\) \(Description\) 给定一张有向图,每条边在每一时刻有\(p_i\)的概率存在.求最优策略下从\(1\)走到\(n\)最少 ...
- Django——发送邮件
Django--发送邮件 在web应用中,服务器对客户发送邮件来通知用户一些信息,可以使用邮件来实现. Django中提供了邮件接口,使我们可以快捷的建设一个邮件发送系统. 以下是一个简单实例: se ...
- Selenium + Python +CSV
绪论 首先写这个文章的时候仅仅花了2个晚上(我是菜鸟所以很慢),自己之前略懂selenium,但是不是很懂csv,这次相当于练手了. 第一章 环境介绍 具体实验环境 系统 Windows10教育版 1 ...