GVKun编程网logo

如何使用Selenium,Python上传文件(图片)(python selenium上传文件的方法)

12

在这篇文章中,我们将为您详细介绍如何使用Selenium,Python上传文件的内容,并且讨论关于图片的相关问题。此外,我们还会涉及一些关于input类型上传多个文件(selenium+Python)

在这篇文章中,我们将为您详细介绍如何使用Selenium,Python上传文件的内容,并且讨论关于图片的相关问题。此外,我们还会涉及一些关于input类型上传多个文件(selenium+Python)、Java Selenium如何使用sendkeys上传文件、Python 3.x 中如何使用selenium模块进行网页自动化测试、Python Selenium,如何删除元素?的知识,以帮助您更全面地了解这个主题。

本文目录一览:

如何使用Selenium,Python上传文件(图片)(python selenium上传文件的方法)

如何使用Selenium,Python上传文件(图片)(python selenium上传文件的方法)

如何使用selenium测试工具在Web应用程序上上传图片?我正在使用python。

我尝试了很多事情,但没有任何效果。

答案1

小编典典

上载输入控件将打开一个本机对话框(由浏览器完成),因此通过Selenium单击控件或浏览按钮将仅弹出对话框,并且测试将挂起。

解决方法是通过JavaScript设置上传输入的值(在Java中是通过JavascriptExecutor完成),然后提交表单。

请参阅C#中的示例问题,我确定还有一种在Python中调用JavaScript的方法,但我从未使用过Selenium Python绑定

input类型上传多个文件(selenium+Python)

input类型上传多个文件(selenium+Python)

一般上传方法分为两种:input类型和非input类型,这里具体分析input类型。

html文件:

【上传图标】按钮元素定位中包含name=“file”   type="file"  果断采用input+sendkeys模式。

一、上传一张图片,上代码:

解释一下:

1、同个页面或者切换到不同页面中都存在多个iframe,所以定位元素时需要切入对的iframe,否则死活定位不到元素。

2、填写表单时字段超过一页无法全部都展示出来,此时需要拖动下滚动条加载剩下的字段才能获取到相关的元素,采用win32api的mouse_event方法(如何使用可参照win32 API大全,地址:http://www.esk365.com/zxsc/prg/winapia/)。

3、页面中存在多个上传按钮均为input类型,先定位一组元素,然后根据需要去找第几个的input,从0开始数:


二、上传多张图片
思路:一开始的想法是上传一张图片后接着再上传一张,循环上传。
这个思路是正确的,但是操作起来却不行,一直报错,如下:

报错的原因:每定位上传一次页面就会自动刷新,如果再次上传则找不到元素

解决方案:上传一次后如果再上传第二次,需要重新定位元素,正确代码如下:

 

 <正文完>




Java Selenium如何使用sendkeys上传文件

Java Selenium如何使用sendkeys上传文件

下载和安装AutoIt

文件上传是自动化中棘手的部分,目前selenium并没有提供上传的实现api,所以知道借助外力来完成,如autoit、sikuli。

AutoIt , 这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)的自动化操作,利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务;

1.打开AutoIt的官网下载

Java selenium上传文件怎么实现

两种下载方法都可以,这里我想下载的是zip,解压出来如下图所示:

Java selenium上传文件怎么实现

立即学习“Java免费学习笔记(深入)”;

点击SciTe文件夹,我们打开脚本编辑器。

Java selenium上传文件怎么实现

打开百度图片上传窗口,打开AutoIt Windows Info 工具,鼠标移动到Finder Tool,按住鼠标左键拖动到需要识别的windows控件上。拖动元素定位器上那个靶点形状按钮到文件上传弹窗,能够捕获到一些元素信息。用鼠标拖住工具上的Finder Tool的图标(即图中蓝色圈圈部分)到要识别的控件上,控件的唯一标识信息会显示在工具的左侧部分(图中红框标出的部分)。从显示的结果得知,此控件的Title=“打开”,Class为Edit,Instance=1。我们就是利用控件的这些信息,定位控件,编写脚本。

Java selenium上传文件怎么实现

打开编辑器,根据控件Finder Tool识别到的信息来调用函数编写脚本;在AutoIt脚本编辑器里输入如下脚本,不要下面我写的备注哈。

我们这里需要知道有以下信息:

1.操作页面的title,用于固定操作的页面。
2.需要填入的信息,在输入框中填入“上传文件的路径及文件名”(windows操作)
3.点击“打开”按钮,实现文件上传。

根据以上所识别的控件信息,利用编辑器SciTE Script Editor,根据AutoIT的语法编写脚本。

实现文件上传需要的几个方法:

ControlFocus ( "窗口标题", "窗口文本", 控件ID)
---->设置输入焦点到指定窗口的某个控件上(即:控件ID“文件名”输入框的id)
WinWait ( "窗口标题" [, "窗口文本" [, 超时时间]] )
---->暂停脚本的执行直至指定窗口存在(出现)为止
ControlSetText ( "窗口标题", "窗口文本", 控件ID, "新文本" )
---->修改指定控件的文本(即:控件ID“文件名”输入框的id)
Sleep ( 延迟 )
---->使脚本暂停指定时间段
ControlClick ( "窗口标题", "窗口文本", 控件ID [, 按钮] [, 点击次数]] )
---->向指定控件发送鼠标点击命令(即:控件ID“打开”按钮的id)
登录后复制

其中,title即AutoIt Window Info识别出的Title字段,controlID即AutoIt Window Info识别出的Class和Instance的拼接,如上图拼接后的结果应为:Button1(即classnameNN)

Java selenium上传文件怎么实现

ControlFocus(("title","text",controllD)用于识别windows文件上传窗口
ControlFocus("打开","","")向文件名输入框输入本地要上传文件的路径
ControlSetText("打开","","Edit1","C:\Users\DELL\Desktop\test\upload\北京宏哥.jpeg")
Sleep(2000)点击上传窗口中的“打开“按钮
ControlClick("打开","","Button1")
登录后复制

保存脚本文件为ChromFileUpload.au3格式,然后在AutoIt脚本编辑器中点击Tools菜单,tools=>go,执行脚本验证(前提是windows窗口必须是打开状态),验证成功,如下图所示:
为了这个脚本能被java 程序调用,需要通过Compile Script to .exe (x64)工具生成exe文件(这个是通过.exe安装包安装的AutoIt)

AutoIt脚本编辑器中点击Tools菜单,选择compile,会在同路径下生成一个.exe的文件(这个是通过解压包安装的AutoIt)

Java selenium上传文件怎么实现

提示Conversion complete转化完成:将ChromeFileUpload.exe拷贝到项目下,待会在Selenium脚本要使用。
java代码

//实现文件上传。通过Runtime的静态方法获取Runtime对象
Runtime runtime = Runtime.getRuntime();
//通过Runtime对象调用exe方法
runtime.exec("C:\Users\DELL\Desktop\test\upload\ChromeFileUpload.exe");
登录后复制

以上就是Java Selenium如何使用sendkeys上传文件的详细内容,更多请关注php中文网其它相关文章!

Python 3.x 中如何使用selenium模块进行网页自动化测试

Python 3.x 中如何使用selenium模块进行网页自动化测试

python 3.x 中如何使用 selenium 模块进行网页自动化测试

引言:
随着互联网的不断发展,网页的自动化测试越来越普遍,而 Python 语言中的 selenium 模块则成为了一种常用的网页自动化测试工具。本文将介绍如何使用 Python 3 和 selenium 模块进行网页自动化测试,并为读者提供一些代码示例。

一、安装 selenium 模块
在开始之前,我们需要先安装 selenium 模块。可以使用 pip 命令来安装,如下所示:

pip install selenium
登录后复制

二、配置驱动程序
selenium 需要通过浏览器驱动程序来操作浏览器,因此我们需要先下载相应的浏览器驱动程序。selenium 支持多个浏览器,比如 Chrome、Firefox、Safari 等。本文以 Chrome 浏览器为例进行说明。

首先,我们需要查看当前使用的 Chrome 浏览器的版本号。可以在 Chrome 浏览器的地址栏中输入 chrome://version/ 来查看版本号。

立即学习“Python免费学习笔记(深入)”;

然后,我们需要下载对应版本的 Chrome 浏览器驱动程序。可以在 Chrome 浏览器的官方网站上下载,也可以在第三方网站上下载。

下载完成后,将驱动程序所在的路径添加到环境变量 PATH 中。

三、使用 selenium 进行网页自动化测试
下面我们将使用一个例子来演示如何使用 selenium 进行网页自动化测试。假设我们要测试百度搜索功能,代码如下所示:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

# 创建一个 Chrome 浏览器的实例
driver = webdriver.Chrome()

# 打开百度首页
driver.get("https://www.baidu.com")

# 定位输入框
input_box = driver.find_element_by_css_selector("#kw")

# 输入关键字并回车
input_box.send_keys("selenium")
input_box.send_keys(Keys.RETURN)

# 获取搜索结果
results = driver.find_elements_by_css_selector(".result")

# 输出搜索结果的标题和链接
for result in results:
    title = result.find_element_by_css_selector("h3").text
    link = result.find_element_by_css_selector("a").get_attribute("href")
    print("标题:", title)
    print("链接:", link)

# 关闭浏览器
driver.quit()
登录后复制

在上面的代码中,我们首先导入了 webdriver 和 Keys 这两个类。webdriver 类是 selenium 的核心类,用于控制浏览器。Keys 类定义了键盘上的一些按键,比如回车键。

然后,我们创建了一个 Chrome 浏览器的实例,并打开了百度首页。接下来,我们定位了输入框,并向输入框中输入了关键字 "selenium" 并回车。

然后,我们通过 find_elements_by_css_selector 方法获取所有的搜索结果。然后遍历搜索结果,获得每个结果的标题和链接,并输出到控制台。

最后,我们关闭了浏览器。

四、总结
本文介绍了如何使用 Python 3 和 selenium 模块进行网页自动化测试,并提供了一个代码示例。通过 selenium 的强大功能,我们可以模拟用户的操作,从而自动化测试网页的各种功能。希望本文对你有所帮助,能够在你的网页自动化测试工作中提供一些参考。

以上就是Python 3.x 中如何使用selenium模块进行网页自动化测试的详细内容,更多请关注php中文网其它相关文章!

Python Selenium,如何删除元素?

Python Selenium,如何删除元素?

如何解决Python Selenium,如何删除元素??

getElementByClassName不是的方法document。您将要使用

getElementsByClassName(''classname'')[0]...

但前提是您确定它是该课程中唯一的课程。

解决方法

我一直在尝试最后一小时删除元素,但没有成功。而且该元素只能通过类名来访问。我试过了:

js = "var aa=document.getElementsByClassName(''classname'')[0];aa.parentNode.removeChild(aa)"
driver.execute_script(js)

我收到未定义parentNode的错误。

那么,使用Selenium删除元素的最佳方法是什么?

关于如何使用Selenium,Python上传文件图片的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于input类型上传多个文件(selenium+Python)、Java Selenium如何使用sendkeys上传文件、Python 3.x 中如何使用selenium模块进行网页自动化测试、Python Selenium,如何删除元素?等相关知识的信息别忘了在本站进行查找喔。

本文标签: