Phython新手做网页操作自动化

先说一下背景和要实现的功能,前段时间给媳妇做一个工具,需要将excel内的内容分别对应填充到网页内的表单文本框和下拉框中,借此正好整理一下自己的制作步骤,当作笔记,大佬就不要做评价了,只为新入门的同僚做个参考。

1、安装phython开发工具,我用的是pycham社区版

2、下载chromedriver.exe工具,本次自动化操作以chrome浏览器为例。另外需要注意的的是浏览器版本一定要注意,下载好插件以后,将文件拷贝到main.py同目录下,这是我的目录结构,仅供参考。

Phython新手做网页操作自动化_第1张图片

 

3、开始开发

刚开始接触phython什么也不太懂,对什么import什么的都不明白,完全的小白,于是网站上搜索了一些例子,但是发现运行不了,下面的的import的一直有个红线,于是搜索发现需要安装插件。

selenium 是对应网页内的控件做选择的,具体的什么名字忘了

openpyxl 是操作Excel表格用的插件

import time
from selenium import webdriver
from openpyxl import load_workbook

操作步骤是:

Phython新手做网页操作自动化_第2张图片Phython新手做网页操作自动化_第3张图片

 

 搜索 selenium 和 openpylx 安装以后就没有报错了。于是进行下一步,以下是代码:

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
time.sleep(3)

运行成功,自动启动网页并打开了百度的页面。

下一步就是要分析要进行的自动化内容。我这里是根据Excel的内容,分别对应填充到网页的表单内。

首先是读取表格的内容,代码如下:

# 工作簿名称
wb = load_workbook("excel的路径")
ws = wb.active
list_orders = []
list_row = []
for row in ws.rows:
    for col in row:
        list_row.append(col.value)
    list_orders.append(list_row)

mrn = ws.max_row
mcn = ws.max_column
while i < mrn:
   if ws.cell(row=i, column=14).value == noworder:
      odn = ws['T'+i].value
      zno = ws['AG'+i].value 
      phone = ws['AV'+i].value
      print("取到了")
      break
  else:
      print("下一行")
  i = i + 1

将excel的内容放到一个数组供后面使用。

接下来就是将数组内的信息对应到网页表单的字段内。这里就比较繁琐,需要分析html的每个控件根据不同的定位方式找到控件并赋值,每个插件的定位略有不通,可能是谷歌版本不一样,写法略有区别,我的代码是这样的

根据input的name值给文本赋值
driver.find_element('name', 'username').send_keys("admin")
根据class选择多选框
driver.find_elements("class name", "el-checkbox")[1].click()
根据placeholder定位文本框
driver.find_element('css selector', "[placeholder='纬度']").send_keys("36.122312")

每个插件略有不同,以上仅供参考。按照不同的方式定位并赋值以后,然后再定位到button,调用click方法,操作完成。

你可能感兴趣的:(自动化,运维,python)