首页 > 编程语言 >Python selenium 插入图片

Python selenium 插入图片

时间:2022-11-17 10:12:10浏览次数:41  
标签:Python selenium Upload Edit1 插入 autoit import png


方法一

如果有上传图片按钮的,就比较简单了:

browser.find_element_by_id("IdOfInputTypeFile").send_keys(os.getcwd()+"/image.png")

browser.find_element_by_xpath("IdOfInputTypeFile").send_keys(os.getcwd()+"/image.png")

但如果需要手动点一下再选择图片的,就没法这样了。

Python selenium 插入图片_爬虫

 

方法二

使用autoit这个软件来实现。然后生成exe,使用Python来调用它。但这样比较麻烦,需要写死文件

Python selenium 插入图片_desktop_02

WinWait("File Upload", "", 5000);
WinActivate("File Upload");
ControlFocus("File Upload","","Edit1")
Sleep(1000);
WinWait("[CLASS:#32770]","",100) ;绛夊緟0.1绉?
ControlSetText("File Upload", "", "Edit1", "C:\Users\SXF\Desktop\Python\doubanReg\Post_Up_2\Reply\essay\绐濊叮鏄搨娑涢泦鍥㈡棗涓嬪搧鐗屽叕瀵擄紝鎻愪緵鑸掗€傝叮鍛崇殑鐢熸椿浣撻獙") ;鎵撳紑鏂囦欢鐩綍
Sleep(1000);
ControlClick("File Upload", "", "Button1");
Sleep(1000);
WinWait("[CLASS:#32770]","",100) ;绛夊緟0.1绉?
ControlSetText("File Upload", "", "Edit1", '"1.png" "2.png" "3.png" "4.png" "5.png"');
Sleep(1000);
ControlClick("File Upload", "", "Button1");
Sleep(5000);

方法三

使用Python的autoit库来完成!语法跟软件一模一样

import autoit

autoit.win_active("Open")
autoit.control_send("Open","Edit1",r"C:\Users\uu\Desktop\TestUpload.txt")
autoit.control_send("Open","Edit1","{ENTER}")

# 建议使用control_set_text 因为control_send会发送错误的文本
autoit.control_set_text("Open","Edit1",r"C:\Users\uu\Desktop\TestUpload.txt")

import autoit
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys

ActionChains(driver).move_to_element( driver.find_element_by_xpath("//path/to/upload/button")).click().perform()
handle = "[CLASS:#32770; TITLE:Open]"
autoit.win_wait(handle, 60)
autoit.control_set_text(handle, "Edit1", "\\file\\path")
autoit.control_click(handle, "Button1")

但注意,程序在运行时候,不能有人为干扰

 

如果打包时候出错,请看这个:

解决方案 Autoit Pyinstaller OSError: Cannot load AutoItX from path


标签:Python,selenium,Upload,Edit1,插入,autoit,import,png
From: https://blog.51cto.com/xfxuezhang/5859810

相关文章

  • python web自动化-文件上传三种方法
    文件上传三种方式:(一)查看元素标签,如果是input,则可以参照文本框输入的形式进行文件上传方法:和用户输入是一样的,使用send_keys步骤:1、找到定位元素,2,输入文件路径ele=driv......
  • python xls2csv
    importpandasaspdaex=pda.read_excel("k.xls")ex.to_csv("k.csv",encoding="gbk") importpandasaspdacs=pda.read_csv("k.csv",encoding="gbk")cs.to_exc......
  • Python中为啥 int('12', 16) 的结果是 18?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【SamYao】问了一个Python基础的问题,提问截图如下:二、实现过程其实他自己发出来的解析已经比较清晰了,如下图所示:......
  • python flask学习之Mac开发flask项目中bash: flask: command not found错误解决
    最近在学习pythonflask时,当使用SQLAlchemy对mysql操作的功能要做flask_migrate迁移在执行flask的命令【flaskdbinit】时,控制台报bash:flask:commandnotfound错误......
  • python模块
    什么是模块为什么有模块怎么使用模块模块的定义模块被引用时的执行步骤importfoo执行foo.py产生foo.py的名称空间,将foo.py运行过程中产生的名字都丢到foo的名称空......
  • python日期和时间
    一、日期和时间时间戳#从1970年到现在经过的秒数#作用:用于时间间隔的计算importtimeprint(time.time())#获得float型1668571939.8918502时间格式化符号......
  • python语言绘图:绘制贝叶斯方法中最大后验密度(Highest Posterior Density, HPD)区间图的
    代码源自:https://github.com/PacktPublishing/Bayesian-Analysis-with-Python  内容接前文:​​python语言绘图:绘制贝叶斯方法中最大后验密度(HighestPosteriorDensity,......
  • MySQL 创建存储过程,使用 while 批量插入数据
    1、创建带字段的表student(id,name,age)#id整型主建不能为空自动增长#name字符型长度50不能为空#age整型不能为空默认值18mysql>createtablestudent(->i......
  • python中的for循环
    1.range#1.range(起始值,结束值,步长)#范围区间#步长不写时默认是1#当里面只有一个数据的时候,默认是0-结束值#当里面有两个数据的时候,是起始值-结束值print......
  • 用Python入门知识点,打印自己的宠物小精灵,圆你的驯兽师梦
    神奇宝贝是我们的回忆,那时候做梦都想拥有一个皮卡丘,或者喷火龙也行!今天,或许是离梦想最近的一天。我将用python入门需要掌握的知识点,教你制作一个宠物小精灵,其实很简单。......