FAQ selenium无法click的一个案例分享(1)
案例描述
- 来自助教咨询
点击网页的第一个选择文件,如图

示例代码
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://sahitest.com/demo/php/fileUpload.htm')
driver.find_element('id','file').click()
运行效果:报错了:invalid argument,无效的参数
D:\Python39\python.exe D:/pythonProject/deom1.py
Traceback (most recent call last):
File "D:\pythonProject\deom1.py", line 8, in <module>
driver.find_element('id','file').click()
File "D:\Python39\lib\site-packages\selenium\webdriver\remote\webelement.py", line 88, in click
self._execute(Command.CLICK_ELEMENT)
File "D:\Python39\lib\site-packages\selenium\webdriver\remote\webelement.py", line 396, in _execute
return self._parent.execute(command, params)
File "D:\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 435, in execute
self.error_handler.check_response(response)
File "D:\Python39\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument
(Session info: chrome=104.0.5112.81)
Stacktrace:
Backtrace:
Ordinal0 [0x004F5FD3+2187219]
Ordinal0 [0x0048E6D1+1763025]
Ordinal0 [0x003A3D40+802112]
Ordinal0 [0x003C9171+954737]
Ordinal0 [0x003ECB8C+1100684]
Ordinal0 [0x003C8394+951188]
Ordinal0 [0x003ECDA4+1101220]
Ordinal0 [0x003FCFC2+1167298]
Ordinal0 [0x003EC9A6+1100198]
Ordinal0 [0x003C6F80+946048]
Ordinal0 [0x003C7E76+949878]
GetHandleVerifier [0x007990C2+2721218]
GetHandleVerifier [0x0078AAF0+2662384]
GetHandleVerifier [0x0058137A+526458]
GetHandleVerifier [0x00580416+522518]
Ordinal0 [0x00494EAB+1789611]
Ordinal0 [0x004997A8+1808296]
Ordinal0 [0x00499895+1808533]
Ordinal0 [0x004A26C1+1844929]
BaseThreadInitThunk [0x7635FA29+25]
RtlGetAppContainerNamedObjectPath [0x773A7A9E+286]
RtlGetAppContainerNamedObjectPath [0x773A7A6E+238]
进程已结束,退出代码为 1
解决方法
用鼠标方法
from selenium import webdriver
from selenium.webdriver import ActionChains
driver = webdriver.Chrome()
driver.get('http://sahitest.com/demo/php/fileUpload.htm')
ele_fie = driver.find_element('id','file')
ActionChains(driver).click(ele_fie).perform()
说明
不是很好解释
提交了问题到stackoverflow:https://stackoverflow.com/questions/73356693/why-click-method-didnt-take-effect-but-actionchains-works-fine,看看有无大神帮忙解释下。
参考答案
In the DOM I see, the input element has attribute type=file, which means it is a file upload dialog that is related to OS and Selenium cannot perform operations on this one directly. Hence ActionChains.
翻译: 的确,在网页上,input标签是有这个属性的type=file,这是一个文件上传的对话框,跟OS相关,selenium无法对该元素直接执行操作,因此(?)可以用ActionChains。
FAQ selenium无法click的一个案例分享(1)的更多相关文章
- nginx端口占用案例分享
这里分享一个案例,问题的原因是反向代理使用不当. 现象 首先描述一下问题的现象.当时的问题是应用启动失败,日志里面报错显示端口占用.我们的应用都是通过脚本发布的,之前发布过多次都没有出现过问题.那么同 ...
- Office 2010 KMS激活原理和案例分享
Office 2010 KMS激活原理和案例分享 为了减低部署盗版(可能包含恶意软件.病毒和其他安全风险)的可能性,Office 2010面向企业客户推出了新的批量激活方式:KMS和MAK.这 ...
- Office 2010 KMS激活原理和案例分享 - Your Office Solution Here - Site Home - TechNet Blogs
[作者:葛伟华.张玉工程师 , Office/Project支持团队, 微软亚太区全球技术支持中心 ] 为了减低部署盗版(可能包含恶意软件.病毒和其他安全风险)的可能性,Office 2010面向企 ...
- 性能调优案例分享:Mysql的cpu过高
性能调优案例分享:Mysql的cpu过高 问题:一个系统,Mysql数据库,数据量变大之后.mysql的cpu占用率很高,一个测试端访问服务器时mysql的cpu占用率为15% ,6个测试端连服务 ...
- 老李案例分享:MAT分析应用程序服务出现内存溢出过程
老李案例分享:MAT分析应用程序服务出现内存溢出过程 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loa ...
- 老李案例分享:定位JAVA内存溢出
老李案例分享:定位JAVA内存溢出 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的loadrunner的培 ...
- 性能调优案例分享:jvm crash的原因 1
性能调优案例分享:jvm crash的原因 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...
- Vue一个案例引发「内容分发slot」的最全总结
今天我们继续来说说 Vue,目前一直在自学 Vue 然后也开始做一个项目实战,我一直认为在实战中去发现问题然后解决问题的学习方式是最好的,所以我在学习一些 Vue 的理论之后,就开始自己利用业余时间做 ...
- [转载]DevOps在传统企业的落地实践及案例分享
内容来源:2017年6月10日,优维科技高级解决方案架构师黄星玲在“DevOps&SRE 超越传统运维之道”进行<DevOps在传统企业的落地实践及案例分享>演讲分享.IT 大咖说 ...
- mysql的"双1设置"-数据安全的关键参数(案例分享)
mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...
随机推荐
- .Net6新版本的AssemblyLoadContext 加载程序集和卸载程序集
准备俩个项目 第一个是控制台 第二个项目是类库 类库项目中只有一个示例class 将类库的代码生成dll 并且设置属性为复制到输出目录 using System.Runtime.Loader; var ...
- 直播CDN调度技术关键挑战与架构设计
作者:胡济麟 1.背景介绍 1.1 直播业务特点 互联网视频直播是一种消息媒介形态,提供时产时消的内容,经过多年,已经发展出秀场.游戏.电商.体育等多种业务形态.主要特点是:内容实时产生实时消费,对时 ...
- tekla软件安装教程
Tekla2020 WIN10 64位安装步骤: 1.先使用"百度网盘客户端"下载Tekla2020_x64软件安装包到电脑磁盘,并鼠标右击进行解压缩,安装前先断开电脑网络,然后找 ...
- Go语言核心36讲36
在前面,我几乎已经把Go语言自带的同步工具全盘托出了.你是否已经听懂了会用了呢? 无论怎样,我都希望你能够多多练习.多多使用.它们和Go语言独有的并发编程方式并不冲突,相反,配合起来使用,绝对能达到& ...
- python解释器下载与安装指导手册
python解释器下载与安装指导手册 1.python解释器 1.1下载地址 1 https://www.python.org/ 1.2.python解释器下载 1.3.python解释器主流版本 p ...
- element ui 使用Tooltip 文字提示,文本内容中输入空格
'\u00a0'是'nbsp'的16进制表示 其他空格也可以使用下表的值: 代码如下 <el-tooltip effect="light" placement="t ...
- IDEA项目下out与target目录的区别详解
IDEA项目下out与target目录的区别详解 一.目录主要区别: out存放的是该项目下所有Module(模块)的编译结果. target存放的是单个Module的编译结果. 二.目录详解 out ...
- (Java)设计模式:行为型
前言 此篇博文内容续接的是 UML建模语言.设计原则.创建型设计模式 的内容,有兴趣的可以点前面的链接去看一下 3.2.行为型 这类设计模式是专门用于:对象间的高效沟通和职责委派 * 3.2.1.责任 ...
- 24V转5V,24V转3.3V稳压芯片的电路图,,PCB和BOM
1,PW6206与PW6513系列是一款高精度,40V高输入电压,低静态电流,低压降线性稳压器具有高纹波抑制.在VOUT=5V&VIN=7V时,负载电流高达300mA,(输入与输出电压的压差越 ...
- 在OpenEuler22.09(也适用于CentOS7+)编译安装Python3.9,并于原Python共存-指南
指南使用操作系统:OpenEuler 22.09(网络安装,最小安装,使用默认源) 指南使用系统自带Python版本:3.10(高版本,这不是3.1喔) 1. 安装基本的编译环境 yum -y ins ...