首页 > 编程语言 >python+selenium+excel自动登录,自动填写网页

python+selenium+excel自动登录,自动填写网页

时间:2024-05-08 13:22:06浏览次数:33  
标签:brguge sheet python list selenium 自动 import find

经常有些网页要登录,然后频繁填写一些重复的内容,本文暂只考虑不需要验证码的情况,可以通过selenium模拟用户行为在页面操作,用excel拖出相似内容,用xlrd读取并填写到网页中。

  • 导入相关包
from selenium import webdriver

import os
import xlrd
import xlwt
import json
import requests, json,time
from selenium.webdriver.support.wait import WebDriverWait```



+ 调用webdriver,进入登录页面

```python
ChromeDriverServer = '''C:\\Users\\Chrome\\chromedriver.exe'''
url='https://www.baidu.com/'
myurl='' #跳转后的页面
os.environ["webdriver.chrome.driver"] = ChromeDriverServer
brguge = webdriver.Chrome(executable_path=ChromeDriverServer)
brguge.get(url)  # 发送get请求
brguge.find_element_by_id('username').send_keys('xxx')  # 输入用户名
brguge.find_element_by_id('password').send_keys('xxx')  # 输入密码
time.sleep(0.5)
brguge.find_element_by_class_name('loginBtn').click()  # 确认
print(brguge.current_url)  # 输出搜索的路径
brguge.get(myurl)```



+ 读取excel
xlsfile表示绝对路径,如xlsfile = r'E:\4_文档\总结\30周.xlsx'

```python
def read(xlsfile):
    book = xlrd.open_workbook(xlsfile)#得到Excel文件的book对象,实例化对象
    sheet0 = book.sheet_by_index(0) # 通过sheet索引获得sheet对象
    sheet_name = book.sheet_names()[0]# 获得指定索引的sheet表名字
    sheet1 = book.sheet_by_name(sheet_name)# 通过sheet名字来获取,当然如果知道sheet名字就可以直接指定
    nrows = sheet0.nrows    # 获取行总数
    ncols = sheet0.ncols    #获取列总数

    for i in range(nrows):
        list.append([])
        for j in range(ncols):
            # print(sheet0.cell_value(i, j))
            list[i].append(str(sheet0.cell_value(i,j)))
    print(list)
    return list```



+ 从list将内容写入网页

```bash
    gz=brguge.find_elements_by_name('gz')
    for i in range(0, rows):
        gz[i].clear()
        gz[i].send_keys(list[i+2][0])  # 输入
    brguge.find_element_by_id('s1_ok').click()# 确认```



+  

 

 

 

标签:brguge,sheet,python,list,selenium,自动,import,find
From: https://www.cnblogs.com/bigleft/p/18179446

相关文章

  • 【攻防技术系列+Python】-- 将Python脚本转化为exe文件
    将Python脚本转化为exe文件到目前为止,我们已经介绍了一个远程控制程序所有常用功能的实现、但是实现的脚本在执行时需要Python环境和模块文件的支持,而目标设备上往往不具备这种条件。如果将使用Python编写的远程控制程序变成在Windows中可以执行的exe文件,就可以解决这个问题......
  • 【攻防技术系列+Python】-- 用 Python 控制系统进程
    用Python控制系统进程由于注册表几乎可以决定整个操作系统的运行,因此它成为安全工具与恶意软件对抗的主要战场之一。除了注册表之外,对系统进程的控制也是安全工具和恶意软件的必争之地。这里我们首先要了解程序和进程的区别。程序是静态的,进程是动态的。进程可以分为系统进程......
  • 在Windows运行Gitlab Runner对.NET Framework 4.6.1旧项目自动执行单元测试
    摘要本文介绍了GitlabRunner如何在Windows服务器上调用vstest.console.exe,对旧的项目基于.NETFramework4.6.1的项目,自动执行单元测试。改造旧版本的.csproj文件改造成功后,完整的.csproj文件如下:<ProjectSdk="Microsoft.NET.Sdk"> <PropertyGroup><ProjectG......
  • 在Windows运行Gitlab Runner对.NET Framework 4.6.1旧项目自动执行单元测试
    摘要本文介绍了GitlabRunner如何在Windows服务器上调用vstest.console.exe,对旧的项目基于.NETFramework4.6.1的项目,自动执行单元测试。改造旧版本的.csproj文件改造成功后,完整的.csproj文件如下:<ProjectSdk="Microsoft.NET.Sdk"> <PropertyGroup><ProjectG......
  • 使用Selenium做网站登录的免验证
    我发现,我已经三年多没有更新博客了。这几年一直感觉没什么可写的,工作上没遇到的问题python的不多,主要是前端页面上遇到的问题,感觉写起来比较困难,一写就要贴上去很多代码,还没什么必要,不贴又说不明白,所以干脆不写了。 今年换了工作,开始研究新玩意儿了——爬虫。俗话说,爬虫爬得好,......
  • python教程6.3-json序列化
    序列化:dumps,编码,将python类型转成json对象反序列化:loads,解码,将json对象转成python对象pickle模块提供了四个功能:dumps、loads、dump、load(前2个操作变量,后2个操作文件)jsonjson模块也提供了四个功能:dumps、dump、loads、load,⽤法跟pickle⼀致。(前2个操作变量,后2个操作文件)......
  • 在Windows运行Gitlab Runner自动推送nupkg包到NuGet仓库
    摘要本文描述了运行在Windows上的GitlabRunner,如果调用PowerShell来执行推送nupkg包的命令。.gitlab-ci.yml完整脚本如下:stages:#Listofstagesforjobs,andtheirorderofexecution-build-test-push-nupkgvariables:YEE_CLOUD_VERSION_I......
  • python教程6.3-time模块datetime模块
     time模块有下面几种表示形式:1、时间戳(timestamp),表示的是从1970年1⽉1⽇00:00:00开始按秒计算的偏移量。例⼦:1554864776.1619012、格式化的时间字符串,⽐如“2020-10-0317:54”3、元组(struct_time)共九个元素。由于Python的time模块实现主要调⽤C库,所以各个平台可能有所不......
  • python教程6.2-OS模块random模块
    OS模块   random模块 ......
  • python基本知识
    变量整型num=111浮点型num=1.11 字符串型#字符串不能通过索引进行修改num='aaaa'num="aaaa"num='''aaaaa'''num=123num=str(num)单引号、双引号以及三引号的区别单引号、双引号的内容都是str类型,当字符串要包含""时,需要用''去包含,反之亦然......