python从excel中读取数据并填写网页表格

话不多说,先直接上代码

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

import openpyxl
wb = openpyxl.load_workbook('文件路径')
sh = wb['Sheet1']//工作簿名称



driver = webdriver.Chrome()

driver.implicitly_wait(2)  # 设置隐式等待时间

driver.get("")  # 地址栏里输入网址

#自动登入的功能
driver.find_element_by_id('number').send_keys('账号')
driver.find_element_by_id('password').send_keys('密码')
driver.find_element_by_id('id').click()#点击登入按钮



#将excel所有数据读入到data中
data=[]
for row in list(sh.rows)[1:]:    
    for cell in row:
        if(cell.value):
            data.append(cell.value)

input("确定")


print(driver.find_elements_by_tag_name("iframe"))
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])
#有些表格可能在iframe中,需要跳转进入


i=0
while(1):
    driver.find_element_by_id('id').send_keys(data[i])
    #普通的表框,直接通过id找到框,输入值即可

    driver.find_element_by_id('id').send_keys(data[i+1])
    time.sleep(1)
    driver.find_element_by_id('id').send_keys(Keys.ENTER)
	#有些表框需要选择,我的方法是,等待表格弹出后输入回车
	input("确认")
    i+=2



driver.quit()

1.selenium的使用

selenium需要先下载一个适配自身版本的驱动,这个其他博客也有讲,可以照着他们的步骤来即可,我自己发现的一个坑是,要想程序正常运行,还得将代码放在chrome application的目录,即跟驱动同级才能正常使用.

2.openpyxl的使用

这个网上教程很多,可以根据自己的实际需求来读取数据填写.虽然我不太会用,但是看那些python培训的广告经常会说python办公,我就猜到应该处理很方便,结果确实挺方便的…网上找点代码拼凑一下就好.

3.网页id读取

想知道对应表框的id或者其他属性,用浏览器打开,进入开发者模式,然后寻找即可目标部件.

个人不太清楚如何用代码处理程序找不到目标部件的问题,就是,让程序自动运行,不管我的页面打开到哪都不会报错.我目前的解决方式是通过input卡住程序,直到我打开需要填表的页面,再给程序输入,让程序继续运行.否则程序找不到对应的部件就会报错退出了

这个代码很多我不少也是从网上搬砖,东拼西凑出来的代码,希望前辈们莫怪.

猜你喜欢

转载自blog.csdn.net/rglkt/article/details/104647936