范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Selenium上传文件有多少种方式?不信你有我全

  Selenium 封装了现成的文件上传操作。但是随着现代前端框架的发展,文件上传的方式越来越多样。而有一些文件上传的控件,要做自动化控制会更复杂一些,这篇文章主要讨论在复杂情况下,如何通过自动化完成文件上传
  input 元素上传文件
  如果页面需要文件上传,那么在大多数情况下,都能在页面源代码中找到一个 input 的元素。
  
  如果能直接在页面当中看到这个 input 元素,那么通过 selenium 的 send_keys 方法就能完成文件的上传,在参数中传入本地文件的路径。
  driver.get("")   el = driver.find_element("id", "fileinput") el.send_keys("/path/of/file.png")
  2. input 元素隐藏
  通过修改元素属性,把隐藏的元素属性改掉。
  el = driver.find_element("xpath", "//input[@type="file"]") driver.execute_script("arguments[0].style.visibility="visible"", el) el.send_keys(r"C:UsersmujiDesktopavatar.png")
  比如可以通过这种方式实现百度的以图搜图。
  driver.get("") driver.find_element("css selector", ".soutu-btn").click() time.sleep(3) el = driver.find_element("xpath", "//input[@type="file"]") driver.execute_script("arguments[0].style.visibility="visible"", el) el.send_keys(r"C:UsersmujiDesktopavatar.png")
  3. 文件选择对话框
  对于有一些元素,直接通过 selenium 自带的 send_keys 方法上传文件并不会成功。如果不想对 input 元素进行过多的分析,那么比较直接的方式是采用文件上传对话框来处理。
  一般来说,如果需要上传文件,那么当你点击这个元素之后,会出现一个文件上传的对话框,要求你选择文件,并点击确定。这个对话框是属于系统的,因此 selenium 无法直接控制它。我们可以采用系统的自动化工具或者直接调用键盘来操作这种对话框。
  在操作对话框之前,首先我们通过 selenium 点击文件上传的元素。
  el = driver.find_element("id", "fileinput") ActionChains(driver).click(el).perform()
  input 元素并不能点击,所以不能用元素的 el.click() 方法,需要使用 ActionChains 下面的 click 方法。他们之间的区别在于元素的 el.click 方法更加严格,会对元素是否可见,是否可点击进行检测,在点击事件完全生效后,再执行下面的操作,如果不满足这些条件,可能会报错。而 Action 下的 click 方法则粗暴得多,它几乎不对对元素进行检测,直接把鼠标移动到元素上方,执行点击操作,至于点击是否生效,根本不管。
  4. 使用 pywinauto 上传文件
  pywinauto 是 Windows 系统下的一个自动化工具,它可以直接获取到 Windows 系统下面的弹框,因此当文件上传的窗口出现之后,我们可以使用这个工具传入文件的路径,然后点击打开按钮。
  from pywinauto import Desktop   app = Desktop() dialog = app["打开"]  # 根据名字找到弹出窗口 dialog["Edit"].type_keys("/path/of/file.md")  # 在输入框中输入值 dialog["Button"].click()
  另一种系统自动化工具叫做 pyautogui。这个工具最大的特点在于使用坐标系统定位元素,可以轻而易举的做到跨平台。不管你是 Windows,mac 还是 Linux,都可以使用这款工具实现自动化。
  但是这款工具目前不支持中文的输入,因此我们需要借助剪切板来实现中输入。首先我们把对应的中文复制到剪切板当中,然后再通过 ctrl + v 热键粘贴到文件路径输入框当中。
  5. pyautogui
  import pyperclip    pyperclip.copy("D:\用户.html")  pyautogui.hotkey("ctrl", "v")  pyautogui.press("enter", presses=2)
  键盘
  keyboard.write("C:\Users\muji\Desktop\avatar.png") time.sleep(1) keyboard.press("enter")
  注意:百度以图搜图禁用了爬虫,所以在上传文件时会提示「图片上传失败,请重新上传」。
  6. 并发问题
  通过系统窗口上传文件简单粗暴,但是当你的程序需要并发执行时,使用这种方式实现文件上传就比较麻烦了。如果你的程序需要并发执行,最好还是通过控制 input 元素,使用 send_keys 方法实现文件上传。

日本研究人员开发锂空气电池能量密度达到500Whkg锂空气电池(LABs)是改进当前储能技术的众多途径之一。这种电池及其他金属空气电池因具有高能量密度潜力,受到研究人员青睐。然而,开发此类技术也存在一定挑战,如效率低和循环寿命短。据支付宝高温补贴你们领了吗,感觉如何?大家好,我是阿明,很高兴能够回答这个问题。支付宝高温补贴你们领了吗?感觉如何?其实支付宝红包是从8月2号到8月15号,每天都可以领取,我基本上每天都领了,因为自己早上又去买一点早餐为什么有些华为工作的同学三年左右就离职了?这个话题容易引起争论。华为是如此优秀的公司,想进去的人非常多,为什么有些人还离职呢?天下之大,无奇不有。人各有志,选择不同。我所知道的,我从高中大学研究生各个阶段的同学,至少有10有哪些让人专心学习工作的软件(APP)?下面推荐一些我认为还不错的APP和学习网站01简书做文字的主人简书是一款写作阅读类软件,在这里你可以看到很多精彩的文章,也可以把身边精彩的事情写下来,只要你喜欢写文字,热爱文字,在为什么感觉身边用三星手机的,一般都比较有钱?国产的走高端了,尤其是价位走高端了,权衡再三,还是选了三星旗舰。真正懂手机的,三星手机整体还是牛。国产超越三星,还要些时间。本是华为粉,从mate7开始一直用华为,怎奈现在华为变成重回2469元,12GB512GB骁龙888Plus,堪称手机行业卷王旗舰打工人最不喜欢遇到内卷了,本来付出8分努力就能取得的收获,在同行内卷的情况下,不得不付出10分努力,甚至是12分的努力,不过作为消费者们倒是很希望看到商家们内卷,而在手机行业中,就传媒政治局会议再提促平台经济发展,加码布局互联网传媒政治局会议再提促平台经济发展,加码布局互联网行业周报202205031政治局会议再强调促进平台经济健康发展,加码布局港股互联网根据新华社报道,4月29日中共中央政治局召开会议,高通首发商用WiFi7专业联网解决方案高通(QCOM。US)宣布推出支持WiFi7网络的第三代高通专业联网平台产品组合。据官方介绍,第三代高通专业联网平台是目前全球性能最高的商用WiFi7网络基础设施平台组合,该平台现笔记本散热不好怎么办?笔记本最大通病就是散热问题,动不动温度就彪升,影响cpu性能,笔记本的内部空间太小,光靠那个风扇散热根本就散不出去,加上时间长了,散热风扇被吸附的灰尘阻挡,散热效果更是大打折扣,特顺丰控股国际业务方面将加强与嘉里物流等子公司的资源整合观点网讯近日,顺丰控股股份有限公司披露年度股东大会活动记录表。据观点新媒体了解,顺丰控股指出,关于公司未来国际业务发展。公司去年成功携手嘉里物流。嘉里物流拥有国际网络优势全球空运货人类经过农业革命和工业革命后,下一次革命是什么革命?三千年前农业革命,三百年前工业革命,三十年前已经信息革命了。四大文明古国是农业革命的先驱,在历史风云激荡下,唯有华夏东方文明传承到如今。有得必有失,大国没有抓住工业革命的末班车,竟
从鸿蒙系统到大疆无人机,中企奋力突破美国技术遏制来源环球时报环球时报驻美国特约记者林日环球时报特约记者任重中国坚定地寻求避免科技霸凌,被美国列在制裁黑名单上的中国高科技企业,正在自主创新的路上奋力突围。6月2日晚,华为自主开发的美国再次打压?华为鸿蒙刚发布,苹果就曝新系统,这次你支持谁?如果有一天微软对我们停止了Windows系统,谷歌停止了安卓系统,苹果停止了ios系统,我们会变成什么样子,我们又该怎么办?虽然这是一个可能性极小的问题,但是一旦国际形势剧变,我们说说我对鸿蒙和Android关系的看法鸿蒙2。0发布了,我还没有用过鸿蒙。以下都是我个人的一些看法,不一定对。鸿蒙跟Android到底有什么区别?先说答案在我看来,鸿蒙和Android应该是两个赛道的东西,不具有可比性只会微信收付款的农民都被忽悠学python,python骗局还能走多远?看到某张姓互联网大v下面留言,一个农民被忽悠的学起python。我就一种感觉心酸!韭菜就是韭菜!我经常看这样的推广,说学了python收入翻倍,这个大v也收钱发过好几次,只不过软文全球缺芯,但真正涨价的只有两种芯片?全球缺芯,以芯片为支柱产业的韩国,5月出口创下32年来最大增幅一季度,全球10大芯片制造公司的季度总营收飙升至创历史记录的227。5亿美元。看起来,芯片行业一片大好,似乎只要是做芯华为鸿蒙终于登场,2大家电巨头站了出来,4大国产手机选择沉默在遭受了近两年的质疑后,鸿蒙OS终于在6月2日登场,正式面向全体消费者。鸿蒙OS的问世,除了让华为夺回在软件层面的自主权外,还有一个重要意义,那就是从系统底层构建一个自己的软硬件生小米618冲销量,7纳米芯片256GB仅1369元,还有5000mAh大电池每年的电商618活动,都是手机厂商冲销量的一大好时机,所以最近一段时间以来,各大厂商也是火力全开,旗下很多手机都纷纷跌至新低价,即便是新机,刚上市开卖也会出现降价了,比如卢伟冰上个估值1660亿的中国大疆,为什么比华为还让美国忌惮?连续8年蝉联美国市场销售冠军,2015年白宫事件更是让它名声大噪!面对美国提高关税的制裁,它反手涨价13,通过这样的方式将提高的关税再还给美国人。有人称它为中国苹果,它就是大疆。图关于鸿蒙操作系统,为什么多家权威媒体出现极为相左的认知?6月2日,是中国科技史上重要的一天!这一天,华为正式发布了面向广大消费者的HarmonyOS2(鸿蒙)正式版。作为一款面向万物互联时代的新一代智能终端操作系统,HarmonyOS打网友希望小米用上HarmonyOS!可小米有自己的系统随着华为推出HarmonyOS,不少网友期待其他手机厂商也可以用上HarmonyOS,其中最让消费者期待的应该就是小米了,因为小米本身就是凭借系统起家的早期的小米没有自家的硬件,只新一代信息产业前景好空间大挖掘难新一代信息产业是国务院确定的七个战略性新兴产业之一,近些年一直备受关注。尤其是疫情爆发后。2020年6月30日,中央全面深化改革委员会第十四次会议审议通过了关于深化新一代信息技术与