python实现在某网站自动上传附件

import time
import os
from selenium import webdriver
from pywinauto.keyboard import send_keys
from pywinauto import Desktop
from pywinauto import Application
# 先安装pywin32,才能导入下面两个包
import win32api
import win32con
# 导入处理alert所需要的包
from selenium.common.exceptions import NoAlertPresentException
import traceback

# 环境配置
chromedriver = "C:\Program Files\Google\Chrome\Application"
os.environ["webdriver.ie.driver"] = chromedriver

driver = webdriver.Chrome()  # 选择Chrome浏览器
driver.get('url')  # 打开网站
# driver.maximize_window()  # 最大化谷歌浏览器
# 处理alert弹窗
filepath = 'E:\表格集3'
filename = os.listdir(filepath)

try:
    alert1 = driver.switch_to.alert  # switch_to.alert点击确认alert
except NoAlertPresentException as e:
    print("no alert")
    traceback.print_exc()
else:
    at_text1 = alert1.text
    print("at_text:" + at_text1)

time.sleep(1)

# driver.find_element_by_link_text('登录').click() # 点击“账户登录”

username = ""  # 请替换成你的用户名
password = ""  # 请替换成你的密码
email_token = "8DEDFV"
driver.find_element_by_id('user_name').click()  # 点击用户名输入框
driver.find_element_by_id('user_name').clear()  # 清空输入框
driver.find_element_by_id('user_name').send_keys(username)  # 自动敲入用户名

driver.find_element_by_id('user_password').click()  # 点击密码输入框
driver.find_element_by_id('user_password').clear()  # 清空输入框
driver.find_element_by_id('user_password').send_keys(password)  # 自动敲入密码
time.sleep(2)
# 采用class定位登陆按钮
driver.find_element_by_class_name('login-btn').click() # 点击“登录”按钮
# 采用xpath定位登陆按钮,
# driver.find_element_by_xpath('//*[@id="root"]/div/div[3]/form/button').click()
time.sleep(1)
driver.find_element_by_id('EMAIL').click()
time.sleep(1)


driver.find_element_by_id('email_token').click()  # 点击邮箱验证码输入框
driver.find_element_by_id('email_token').clear()  # 清空输入框
time.sleep(5)
# driver.find_element_by_id('email_send').click()   #获取验证码

driver.find_element_by_id('email_token').send_keys(email_token)  # 自动敲入邮箱验证码
time.sleep(15)
driver.find_element_by_xpath('/html/body/div[3]/div[2]/div[4]/form/a').click()
time.sleep(15)
for name in filename:

    driver.find_element_by_xpath('//*[@id="root"]/div/div/div/div/div[1]/div[3]/div/ul/li[4]/span').click()
    time.sleep(1)
    driver.find_element_by_xpath('//*[@id="root"]/div/div/div/div/div[1]/div[4]/div/div/div[2]/div/div[2]/div[4]/div[1]/span/div[1]/span/p').click()
    app = Desktop()  #创建操作桌面的对象
    dlg = app["打开"]   #获取弹窗的窗口标题
    # dlg.print_ctrl_ids()   #打印窗口的所有控件信息
    dlg["Toolbar3"].click()   #获取文件路径填写输入框并点击
    send_keys("E:\表格集3")     #在文件路径填写输入框输入文件存在的路径
    send_keys("{VK_RETURN}")  #输入文件路径后按回车键
    print(name)
    dlg["文件名(&N):Edit"].type_keys(name)  #获取文件名输入框并填写文件名
    dlg["打开(&O)"].click()  #获取“打开”控件并点击
    # app = Application().connect(class_name='#32770')
    time.sleep(5)
    driver.find_element_by_xpath('//*[@id="root"]/div/div/div/div/div[1]/div[4]/div/div/div[2]/div[2]/p[2]').click()
    time.sleep(3)

有个问题,就是dlg["文件名(&N):Edit"].type_keys(name)这一行代码中name不能有括号,貌似识别不了,暂时没找到解决方案

使用time.sleep()纯粹懒罢了。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值