利用Selenium上传本地文件至网站。#鼠标悬停#键盘事件#常见错误总结

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Python小白一枚,记录日常用.如果你觉得对你有帮助,麻烦点个赞让我看到,谢谢. 这是一篇基于Python,使用Selenium库上传多份本地文件至某文件格式转换网站的方法,感兴趣的可以跟着做一下,顺便说一下这个网站非常好用

提示:以下是本篇文章正文内容,下面案例可供参考

使用步骤

1.引入库

代码如下(示例):

import time,win32com.client
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

2.读入数据

代码如下(示例):

driver = webdriver.Chrome()	
driver.get("https://convertio.co/zh/")		#这个过程比较慢,因为这个网站要加载元素较多
driver.maximize_window()			
upload_btn=driver.find_element_by_css_selector("label.action-label") #找到"文件上传"按钮
upload_btn.click()
time.sleep(2) 
sh = win32com.client.Dispatch("WScript.shell")	#有的版本自带,有的需要下载 口令: pip install pypiwin32
sh.Sendkeys(r"D:\testing1.pdf"+"{enter}"+"\n")	#调用window的API接口,上传本地文件,并回车
driver.implicitly_wait(10) 			#隐式等待
for i in range(len(list)-1):
	more_files_ele=driver.find_element_by_css_selector("span.btn.btn-sm.btn-light")	#"添加更多文件“按钮
	ActionChains(driver).move_to_element(more_files_ele).perform() #鼠标悬停
	driver.find_element_by_css_selector("label[for=pc-upload-add]").click()
    time.sleep(2)
    sh.Sendkeys(list[i+1]+"{enter}"+"\n")	#在键盘上输入文件地址
    print(list[i+1])
driver.find_element_by_css_selector("button.btn.btn-sm.btn-caret.btn-outline-dark6").click()	#点击“将所有转换成按钮”
time.sleep(1)	#习惯性等一下,不等应该也可以
format_choose_ele = driver.find_element_by_xpath("//div[@class='dropdown convert-all-to']//ul[@class='types']/li[2]")	#定位"文档"
ActionChains(driver).move_to_element(format_choose_ele).perform()       #鼠标悬停在一级目录"文档"上
driver.find_element_by_xpath("//ul/li[2]/span[text()='DOCX']").click()	#点击"DOCX"按钮
driver.find_element_by_css_selector("button.btn.btn-xl.btn-primary").click()	#点击转换按钮

该处使用的url网络请求的数据。


常见错误总结总结

提示:这里对文章进行总结:

InvalidSessionIdException,使用的定位方法错了,比如你使用CSS来定位元素,但你用的工具是Xpath;
NoSuchElementException,这里情况很多:比较常见的情况是:元素没有加载出来,;定位到的元素是错的;在网页上看上去是唯一的定位,其实不是;
StaleElementReferenceException,陈旧元素引入异常,页面可能发生了刷新,需要重新获取元素定位;
TimeoutException,超时错误,未在轮询时间内找到元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值