精华内容
下载资源
问答
  • 学习过selenium的人一定会知道,selenium是根据网页上的标签来定位的,但是你上传文件时却是调用的非网页上的窗口,针对selenium这一个弊端,所以需要运用到Autoit工具来实现脚本上传功能 前期准备 1.按照Autoit 2...

    前言

    学习过selenium的人一定会知道,selenium是根据网页上的标签来定位的,但是你上传文件时却是调用的非网页上的窗口,针对selenium这一个弊端,所以需要运用到Autoit工具来实现脚本上传的功能

    前期准备

    1.按照Autoit
    2.搭建python环境,按照pycharm
    3.安装selenium包且将与浏览器对应版本的driver下载下来
    这三步我就不多做赘述了,大家可以自行百度 去安装好

    录制文件上传脚本

    1.打开上传图片的电脑弹窗
    在这里插入图片描述
    2.打开Autoit下的AutoIt Window Info(用于定位文件上传弹窗元素),SciTE Sctipt Editor(编辑脚本)
    在这里插入图片描述
    3.定位元素,拖动Finder Tool到需要定位的元素上
    在这里插入图片描述
    在这里插入图片描述

    4.打开SciTE Sctipt Editor编写脚本,打开就是Title,Edit1就是Class+Instance
    脚本:
    ControlFocus(“打开”,"",“Edit1”);
    ControlSetText(“打开”,"",“Edit1”,“E:\成都软件测试沙龙PPT资料.pdf”);
    sleep(2000);
    ControlClick(“打开”,"",“Button1”)
    在这里插入图片描述

    5.脚本编写好后就是调试了,保存一下脚本,不要关闭文件上传弹窗,点击Tools->Go,他就会自动运行脚本,可以看到成功了,因为这里要上传的是图片,我刚才上传的是pdf,脚本有用,保存到桌面
    在这里插入图片描述
    6.打开Compile Script to .exe
    在这里插入图片描述
    7.将刚保存下来的.au3文件转化成exe文件,将脚本导入后点击Convert
    在这里插入图片描述
    8.打开pycharm,用os.system去调用exe文件(这里我嫌路径麻烦就直接把exe文件放到E盘下了,大家要根据自己的文件路径去选择),下面是我写的一个脚本,运行一下。运行完成后,可以看到文件已经上传上去了
    在这里插入图片描述

    展开全文
  • 最近在为部门编写一个自动化测试工具,工具涉及到一个功能,即 将自动化测试生成的html报告截图,作为邮件正文,html文件上传到web服务器以链接形式添加到邮件中,最后发送邮件。 任务难点 之前从未接触过页面自动...
  • Pycharmexcel文件:导入的excel模板二、python代码 由于工作需要,需要每天定时导入相关excel文件进入后台数据库,由于导入的逻辑比较复杂,所以决定通过python模拟登陆导入网站,点击相关功能实现自动导入。...

    一、环境准备

    Python版本:3.4

    编辑器:Pycharm

    excel文件:导入的excel模板

    二、python代码

        由于工作需要,需要每天定时导入相关excel文件进入后台数据库,由于导入的逻辑比较复杂,所以决定通过python模拟登陆导入网站,点击相关功能来实现自动导入。

    代码如下:

    #!/usr/bin/env python
    # coding=utf-8
    # import time
    from selenium import webdriver
    import os
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.wait import WebDriverWait
    # import requests
    # from selenium.webdriver.common.keys import Keys
    
    
    # 自动化操作创研系统的线索导入功能
    def ui_auto_operation():
        # 模拟登陆
        # rep = requests.Session()
        browser = webdriver.Firefox()
        browser.implicitly_wait(10)  # 设置隐性等待,等待10S加载出相关控件再执行之后的操作
        browser.maximize_window()
        browser.get('http://www.*******.com.cn/****/Login.aspx')
        # time.sleep(10) # 强制等待一般只用于测试
        # browser.refresh()
        # 输入用户名
        username = browser.find_element_by_xpath('//*[@id="txtUserName"]')
        username.clear()
        username.send_keys('*******')
        print('username input success')
        # 输入密码
        browser.find_element_by_xpath('//*[@id="txtPassword"]').send_keys('******')
        print('password input success')
        # # 加载验证码
        # yzm = browser.find_element_by_xpath('/html/body/div[2]/div/div[2]/form/dl[3]/dd/input')
        # yzm.send_keys(input('输入验证码:'))
        # 点击登陆
        browser.find_element_by_xpath('//*[@id="btnLogin"]').click()
        print('login success')
        # cookies = browser.get_cookies()
        # for cookie in cookies:
        #    rep.cookies.set(cookie['name'], cookie['value'])
        # 爬取对应网页的数据
        browser.current_window_handle
        browser.find_element_by_xpath('/html/body/div[2]/div[1]/div[1]/div[8]/div/a/span').click()
        # 切换到当前窗口
        browser.current_window_handle
        # time.sleep(5)
        tow_drive = browser.find_element_by_xpath('/html/body/div[2]/div[1]/div[1]/div[8]/ul/li[5]/a')
        tow_drive.click()
        print('turn success')
        browser.current_window_handle
        # time.sleep(2)
        # 切换到iframe框架里面
        browser.switch_to.frame(browser.find_element_by_xpath('//*[@id="mainFrame"]'))
        # # 输入框只读属性的修改
        # js = 'document.getElementById("Text1").removeAttribute("readonly");'
        # browser.execute_script(js)
        # # 定位并且输入路径数据
        # receiveStart = browser.find_element_by_xpath('//*[@id="Text1"]')
        # receiveStart.clear()
        # receiveStart.send_keys('C:\\fakepath\\5096.xls')
        # # receiveStart.send_keys(Keys.RETURN)
        # 点击上传文件按钮
        browser.find_element_by_xpath('//*[@id="btn1"]').click()
        # 调用写好的exe实现上传,autoup.exe的建立参考下面的网站
        # https://www.cnblogs.com/sunjump/p/7268805.html
        os.system("C:\\fakepath\\autoup.exe")
        # time.sleep(5)
        load = browser.find_element_by_xpath('//*[@id="btn_lead"]')
        load.click()
        try:
            # 每隔2s就去扫描弹出框是否存在,总时长是60s,存在就继续执行之后代码
            WebDriverWait(browser, 60, 2).until(EC.alert_is_present())
            # 处理弹出alert框
            alert = browser.switch_to.alert
            alert.accept()
        finally:
            browser.close()
            # browser.quit()
    
    
    if __name__ == '__main__':
        # @version : 3.4
        # @Author  : robot_lei
        # @Software: PyCharm Community Edition
        ui_auto_operation()
    

    三、注意事项

        此网站属于内部使用,不用输入验证码就可以实现登陆,所以操作相对简单很多。其中遇到的主要问题:

    (1)、iframe框架的切换,也就是加载的网页中有部分代码存在iframe里面,导致页面的代码加载不出来,python无法定位到相关的元素。

    (2)、上传的输入框不是直接用的input和参数传入原因,导致不能直接在在上传的文件框输入需要导入的文件路径,需要点击导入按钮,然后选择文件路径,再点击上传按钮才可以上传。

    (3)、alert弹出框处理,由于导入数据比较多的时候,时间过长会导致alert弹出框还没弹出,但是代码就开始操作弹出框了,此时肯定无法定位元素,所以需要等待一段时间定时扫描查看来处理弹出框。

    (4)、使用SciTE Script Editor编辑程序时需要在file->Encoding里面选择编码,一般是utf-8。

    对应代码如下:

    ;等待5秒钟,让上传窗口出现
    WinWait("CLASS:#32770","",5)
    ;把输入焦点定位到上传输入文本框中,类型为Edit,编号为1,也就是上面获取到内容
    ControlFocus("文件上传", "","Edit1")
    ;在文件名那里,输入需要上传的文件绝对路径
    ControlSetText("文件上传", "", "Edit1", 'C:\fakepath\5096.xls')
    ;等待上传时间,单位是毫秒 1秒 = 1000 毫秒,文件大的话需要设置长点
    Sleep(5000)
    ;点击"打开"按钮,也就是上传,完成整个上传过程
    ControlClick("文件上传", "","Button1");



    展开全文
  • 表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、...
  • 本人初学动态网页, 目前正在做一个练习, 要求在后台管理页面能够让管理员通过上传数据文件 (excel, access 之类的),就可以批量添加数据到网站的数据库, 或者直接...
  • python实现FTP文件传输,包括服务器端和客户端,要求 (1)客户端访问服务器端要有一个验证功能 (2)可以有多个客户端访问服务器端 (3)可以对重名文件重新上传或下载 FTP(File Transfer Protocol,文件传输...
  • 动态的HTML指的是网页不仅提供给用户浏览,网页本身还有交互功能,存在着在脚本如JAVASCRIPT,并利用某种服务器端语言如PHP等实现如用户注册,用户登录,上传文件,下载文件等功能 接下来,了解下加载静态HTML是如何...
  • 网页排名 pageRank是一个简单的Python搜索蜘蛛,页面排名和可视化工具。 这是一组模拟搜索引擎某些功能的程序。 他们将数据存储在名为“ spider.sqlite”的SQLITE3数据库中。 可以随时删除此文件以重新启动该过程。 ...
  • 本系列课程为Python实战系列课程:使用微信控制电脑,使用Python的Web框架Flask搭建网页, 并使用网页控制电脑;使用wxPython编写图形化...|--|----|----|----4 Python 上传文件.mp4 |--|----|----|----5 结课总结.mp4
  • 怎么让开发者从中脱身更专心的去关注功能实现,而不是每天跟着客户的业务需求一直在做着重复的替换资源文件、打包、发布的工作。最近一直在学习Python,就大胆的设想了一个方案,让客户或者运营人员就能替换资源,...
    背景:

         随着APP数量的增多,打包的个数也越来越多。怎么让开发者从中脱身更专心的去关注功能的实现,而不是每天跟着客户的业务需求一直在做着重复的替换资源文件、打包、发布的工作。最近一直在学习Python,就大胆的设想了一个方案,让客户或者运营人员就能替换资源,然后根据他们上传的资源自动化编译、打包、发布。

    探索之路:


    基本流程如上所示:

    1.打开网页填写渠道信息(APP名字、资源文件),点击提交按钮发送post请求到服务器

    2.服务器用Python语言,主要功能是生成渠道配置文件、下载资源图片、拉取最新GitLab源码、

    执行gradle assembleXXXXRelease生成对应渠道APK、上传APK到可下载服务器、返回下载地址到网页端并显示二维码

    3.因为使用GitLab托管代码的,避免多个地方推源码不好管理

    4.APK文件存放使用的是第三方云平台

    5.环境配置有jdk、gradle、Python、git、Web服务器

    实践之路:

             由于种种原因现在还不能完美的演示在线完全定制化APP功能,只能来个本地枪版的体验体验。

           本地所需环境:jdk1.8、gradle3.3、PyCharm自带版本或者Python3.5,各种环境的配置简要说明,具体配置请百度相关的说明教程。

         1.配置Path环境变量%JAVA_HOME%bin,JAVA_HOME是你的JDK安装路径

         2.添加GRADLE_HOME为gradle的解压路径,配置Path环境变量%GRADLE_HOME%bin

        3.Python脚本

          

    # coding=utf-8
    import os
    #Android工程路径
    rawPath = '替换成自己的Android源码工程路径'
    os.chdir(rawPath)  # 切换当前路径
    command = 'gradle assembleRelease'  #命令行中执行的命令
    r = os.popen(command)
    info = r.readlines() 
    for line in info:  # 按行遍历
        line = line.strip('\r\n')
        print(line)
        if (str(line).__contains__("Success")):
            break

            

                    

                   


    版权声明:本文为博主原创文章,转载请标明出处。

    展开全文
  • Python实现简单的注册登录系统

    万次阅读 2014-10-14 13:18:36
    表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、 复选框...

            表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。而在HTML里面,在地址栏输入一个URL然后打开,这样发送的是一个get请求,若是要使用POST请求,就需要使用表单了。

            HTML中的表单就是由form的标签来声明的,举个栗子:

    <form action="login" method="post">
    	<label>username:</label>
    	<input type="text" name="username"><br />
    	<label>password:</label>
    	<input type="password" name="password"><br />
    	<input type="submit" name="submit">
    <form>
            上面代码中,由form标签包含的部分便是表单的内容,其中关注其中的input部分,这个表单中有三个input,一个是text类型的,代表普通的文本输入,一个是password类型的,代表密码输入,一个是submit类型的,是一个提交的按钮;form标签定义了两个属性,一个是action,代表这个表单提交的路径,一个是method,代表这个表单提交的方法,缺省为GET。接下来详细说明一下上述例子的具体过程,当用户点下submit的按钮的时候,这时候浏览器就向action的路径发送了一个POST请求,请求的内容是下面这个样子的

    data = {
    	'username':'XXXXXXXX',
    	'password':'XXXXXXXX'
    }

             就是将各个除了submit之外的input的name作为key值,实际填写的数据作为value值作为数据包,发送了一个POST请求,当然,如果吧method改为get的话,那么发送的就是GET请求了。接下来,服务器所接收到的的请求数据就跟从客户端程序那边发过来的数据是一样的了,接下来就是根据发送过来的数据,做对应的处理然后返回了。

            有了上述知识之后,我们就开始做一个简单的注册登录系统。我们做的注册登录系统是有注册功能和登录功能,注册后服务器将注册信息存储到本地,登录时验证注册消息是否正确。web.py里面有一些template里面已经有了一些支持,具体代码如下:

    # -*- coding: cp936 -*-
    import web
    import os
    
    urls = (
        '/', 'hello',
        '/login', 'login',
        '/regist', 'regist'
    )
    app = web.application(urls, globals())
    class hello:
        def __init__(self):
            self.render = web.template.render('templates/')
        def GET(self):
            return self.render.form()
    
    
    class login:
        def POST(self):
            para = web.input()
            username = para['username']
            password = para['password']
    
            #TODO:...
            #if authenticate(username,password):
                #return render.hello(username)
            return 'hello world'
    
    class regist:
        def GET(self):
            return 'hello world'
            #return self.render.form()
        def POST(self):
            para = web.input()
            username = para['username']
            password = para['password']
    
            #TODO:...
            return 'hello world'
    
    if __name__ == '__main__':
        app.run() 

             运行效果如下挫图:想要自己搞得美观一点,可以自己找一些相关资料!这个实现的就是输入密码,返回值。你可以看到没有本地保存,是的,这就是给你在TODO那里留的坑!然后密码匹配什么的把上面的login类那里的注释去掉即可!

           随便输入用户名密码可得:



    参考文档:

                  模拟一个登录系统:http://xcw31.diandian.com/post/2012-07-23/40039885092

                 聚合数据api:           http://www.juhe.cn/

                 使用新浪微博API:  http://open.weibo.com/ (调用微博api接口,实现微博发送,读取等功能)




    展开全文
  • 因为工作的需要,要在网页上添加很多学员的信息,但是公司审计不让直接导入数据库,而且开发也没有涉及批量上传功能,只好自己动手用Python写了一个批量创建学生信息的程序。 实现思路: 我们首先看我们需要填的...
  • 相应内容除了返回网页的信息外,还可以实现文件的下载功能,Django提供三种下载文件的功能,分别是:HttpResponse,StreamingHttpResponse,FileResponse. HttpResponse:是所有响应过程的核心类,它的底层功能类是...
  • 0.2.0由于Github网络问题,没能上传实现Part和Tool功能 0.0.2 非常困难,在路径中绕来绕去,终于完成了 实现了完整的电池,主题,插件 以及设置文档conf.py 暂时不写文档,可以看看示例代码 0.0.1 原形建造 实现url_...
  • 篇文章主要介绍了用Python的Django框架完成视频处理任务的教程,包括用户的视频上传和播放以及下载功能实现,需要的朋友可以参考 Stickyworld 的网页应用已经支持视频拨放一段时间,但都是通过YouTube的嵌入模式...
  • 网络爬虫要做的,简单来说,就是实现浏览器的功能。通过指定url,直接返回给用户所需要的数据,而不需要一步步人工去操纵浏览器获取。 抓取 这一步,你要明确要得到的内容是什么?是HTML源码,还是Json格式的字符串...
  • 本系统带文档lw万字以上+答辩PPT+查重 如果这个题目不合适,可以去我上传的资源里面找题目,找不到的话,评论留下题目,或者站内私信我...使整个系统划分为较小的模块是模块化的主要功能,从而实现过程简化和设计简洁。
  • 本系统带文档lw万字以上+答辩PPT+查重 如果这个题目不合适,可以去我上传的资源里面找题目,找不到的话,评论留下题目,或者站内私信我, ...使整个系统划分为较小的模块是模块化的主要功能,从而实现过程简化和
  • 根据网上大牛们的博客,实现了根据消息被动回复功能,于是想进一步实现一些其他的功能,比如说每天定时从我们学校的网站爬取一些新闻存到数据库,然后根据用户的信息来推送。 解决思路:现在本地写好了爬虫脚本,没...
  • jQuery File Upload 是一个 jQuery 图片上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表...支持标准HTML表单文件上传的任何服务器端平台(PHP,Python,Ruby on Rails,Java,Node.js,Go等)均可使用。
  • 功能丰富强大 (增删改查、分页排序、分组聚合、各种 JOIN、各种子查询、跨库跨表、性能分析 等零代码实现) 使用安全简单 (自动增删改查、自动生成文档、自动管理版本、自动控制权限、自动校验参数、自动防SQL注入...
  • Python报纸(网页搜罗) 功能摘要 Jot是一种SPWA,允许用户协作共享,阅读和评论文章。 Web套接字合并可提供无缝的跨浏览器用户体验,其中实时更新线程注释和其他通知。 此外,考虑到可伸缩性,分别通过Knuth-...
  • FYPST:样式转移网-源码

    2021-03-15 18:02:27
    样式转移 项目进行中 成分 网页部分 烧瓶(main.py) ... 概述 画廊 上载 每个流派的样式页面 静态CSS,JS和img(徽标) 将其他图像放在静态/图片中 ...AdaIN样式(改编自 ) (原始的尝试和... nn实现的其他功能 待定...
  • 通过使用Python、Flask、Mysql的web建设技术,开发一个文章发布的网站,从中能够实现文章的发布和列表显示、文章的评论、文章的点赞、文章的分类筛选、文章的特定搜索以及发布者个人信息的完善,头像的上传、登录、...
  • 目前实现功能是查个人信息,查课表,查所有成绩,查等级考试成绩,没有实现自动教学质量评价功能。 新版 新版的教务系统是学校外包给湖南强智科技的,没有验证码识别(网页源代码中有这个字段,但还没有使用),...
  • 算法组:手写数字识别 我在比赛中主要负责的是用java语言进行识别平台界面的搭建以及与Python的连接,所以关于算法如何实现和图像如何处理在这里不做总结。界面的具体功能总结起来就是画板写数字,上传图片并显示。...
  • 基于互联网+的智能机器人管家

    千次阅读 2018-06-28 11:53:27
    机器人系统运行的环境是Linux系统、主要是C、Python、PHP等语言计划实现环境监控及报警、当室内没人的时候,机器人在室内自主巡航进行环境检测、安全报警等室内温度、煤气检测并实时上传到互联网。用户可以通过网页...
  • 相应实现参考自:Python3调用百度翻译API,实现实时翻译 该软件中,第二个框即是第一个框的输出框,输出去除回车符之后的文字,也是第三个框的输入框,输入要翻译的内容。一二框一起可以单独使用,二三框一起也可以...
  • 计划实现环境监控及报警、安全防护、文体办公,家庭娱乐、媒体影音、出行天气等功能,机器人作为家庭里的小管家,当室内没人的时候,机器人在室内自主巡航进行环境检测、安全报警等并随时向用户提供家里情况,比如...

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

python实现网页上传功能

python 订阅