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()纯粹懒罢了。