第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 自动脚本以及打包 将写好的脚本打包成exe可执行文件

自动脚本以及打包 将写好的脚本打包成exe可执行文件

时间:2021-10-28 17:08:37

相关推荐

自动脚本以及打包 将写好的脚本打包成exe可执行文件

自动化脚本以及如何打包成可执行程序

1、自动化脚本2、前置工作准备2.1、 selenium模块2.2、浏览器驱动2.2.1、版本选择:3、开始3.1、打开页面3.2、操作页面需求分析:页面元素定位(会的跳过)代码片段解释:完整代码:4、打包4.1、打包工具4.2、用法

1、自动化脚本

自动化脚本,就是能够自己执行的一个脚本。比如你想做一个事情,但是又没有时间或者精力去做,那就可以脚本自动化脚本来帮你去完成,而自己也能腾出时间做其他事情。

一般的操作呢,就是操作一些网页什么的。今天自己也是捣鼓的这点东西。

2、前置工作准备

2.1、 selenium模块

一个Python的第三方库

安装:

pip install selenium

PyCharm中安装

就在file—>setting中操作

直接上图

2.2、浏览器驱动

selenium可以操作的浏览器驱动比较多,用的是chrome的浏览器驱动

下载地址:/mirrors/chromedriver/

2.2.1、版本选择:

先看一下自己电脑中安装的chrome浏览器的版本

然后就着对应的版本,如果版本号没有严格对应的,那就找最近的,最接近浏览器版本的。

我这里浏览器版本是83.0.4103.116

我选择的驱动版本是83.0.4103.39,版本能最近就最近,

但是注意版本不要过高,可能这个驱动不是正式用的

点进去之后去下载

选择对应的操作系统,不用管电脑位数。

下载完之后,将文件解压之后,里面有个chromedriver.exe,待会要用的就是这个驱动

3、开始

3.1、打开页面

# 第一步,加载selenium包中的webdriverfrom selenium import webdriver# 第二步,加载驱动。这里使用的是chrome驱动# 在这里之前,就要刚刚的chormedriver.exe驱动文件了。# 把驱动文件复制到当前代码文件所在的文件夹内driver = webdriver.Chrome('chromedriver.exe')# 既然要操作一个页面,那么我们就需要打开一个网站# 这里以百度为例driver.get('')

以上代码就不多说了,基本都是这个步骤,没什么好解释的,简单的说明都在代码注释中。

截图看效果:

3.2、操作页面

现在我们已经打开了一个页面,如果仅仅是这样,那就毫无意义。我们要的是能够操作这个页面,能够对这个页面进行操作或者拿到我们想要的一些东西

需求

继续示例,我们现在想要进行的操作是:登录操作。

那么我们就需要输入账号和密码到页面。

怎么做呢?

分析:

看页面,我们发现,当前页面并不是登录页面,怎么办?

找,找到登录入口,发现右上角有个登录。

找到登录入口,我们需要的操作就是要点击这个登录,进入登录页面。

页面元素定位(会的跳过)

1、首先,可以通过这种方式打开开发者模式:

或者通过快捷键F12打开,打开之后如下图,我的在右边,默认是在下边的

2、元素定位

第一种方式:

点击上方的箭头(变色),然后在页面上点击想要查看的元素,会发现右边的页面直接就定位到这个元素。是一个a标签。

第二种方式:

通过查找,在开发者工具打开后,按Ctrl+F在开发者工具中查找,比如这里查找登录,能够看到也能够快速找到包含登录的元素

这个时候,鼠标放到这个a标签上,看看是不是你要找的这个元素(因为可能搜索的结果不是一个,确认一下)

3、获取元素的代码定位方式

通过这种方式,看到copy有很多,这个都是复制当前元素在这个文档的位置,在代码中就通过这个东西来定位我们要操作的元素

熟悉了这些,来看代码

代码片段解释:

打开登录界面

# 找到登录入口的按钮,点击进入打开页面# driver.find_element_by_id()# driver.find_element_by_tag_name()# driver.find_element_by_class_name()# driver.find_element_by_xpath()# driver.find_element_by_css_selector()# driver.find_element_by_name()# driver.find_element_by_link_text()# 以上的所有方法都有对应的查找多个元素的方法# 如:driver.find_elements_by_link_text()# 比如根据一个条件能个查找多个结果# 以上是python中寻找页面上元素的方式,# 这些函数返回的结果都是WebDriver或者WebDriver列表# 这里用的是连接文本来查找# driver.find_element_by_link_text('登录')# xpath,页面上copy XPathloginEle = driver.find_element_by_xpath('//*[@id="u1"]/a[2]')# 查找方式很多,不多说了# 按照之前的分析,要点击这个按钮来进入登录页面loginEle.click()# 以上两行代码,就可以进入登录页面

用户名登录。跟上面的一样了,就不多解释

# 进入登录页面,发现需要点击用户名登录# 这里用id来查找,是最精确的一种查找方式loginByAccount = driver.find_element_by_id('TANGRAM__PSP_11__footerULoginBtn')loginByAccount.click()# 到这,我们就可以输入账户和密码了

输入帐号密码:

一样,我们需要找到对应的操作元素。

# 用户名输入框userNameInput = driver.find_element_by_id('TANGRAM__PSP_11__userName')# 密码输入框passwordInput = driver.find_element_by_id('TANGRAM__PSP_11__password')# 输入信息,通过send_keys()userNameInput.send_keys('1234567890')passwordInput.send_keys('kdskdshfslda')# 登录按钮loginBtn = driver.find_element_by_id('TANGRAM__PSP_11__submit')loginBtn.click()# 到此,最基本的操作完成。# 当然,后面还有很多难关,# 现在的验证码这一块就需要很多难点,# 目前的只是很基础的操作,以后慢慢研究

完整代码:

# 第一步,加载selenium包中的webdriverfrom selenium import webdriverimport time# 第二步,加载驱动。这里使用的是chrome驱动# 在这里之前,就要刚刚的chormedriver.exe驱动文件了。# 把驱动文件复制到当前代码文件所在的文件夹内driver = webdriver.Chrome('chromedriver.exe')# 既然要操作一个页面,那么我们就需要打开一个网站# 这里以百度为例`driver.get('')# 找到登录入口的按钮,点击进入打开页面# driver.find_element_by_id()# driver.find_element_by_tag_name()# driver.find_element_by_class_name()# driver.find_element_by_xpath()# driver.find_element_by_css_selector()# driver.find_element_by_name()# driver.find_element_by_link_text()# 以上的所有方法都有对应的查找多个元素的方法# 如:driver.find_elements_by_link_text()# 比如根据一个条件能个查找多个结果# 以上是python中寻找页面上元素的方式,# 这些函数返回的结果都是WebDriver或者WebDriver列表# 这里用的是连接文本来查找# driver.find_element_by_link_text('登录')# xpath,页面上copy XPathloginEle = driver.find_element_by_xpath('//*[@id="u1"]/a[2]')# 查找方式很多,不多说了# 按照之前的分析,要点击这个按钮来进入登录页面loginEle.click()# 以上,就可以进入登录页面# 在测试的时候,会发现,如果登录页面没有打开,是找不到下面的元素的# 所以在这里我们让程序等待3秒之后,等登录界面打开之后再去找里面的元素time.sleep(3)# 进入登录页面,发现需要点击用户名登录# 这里用id来查找,是最精确的一种查找方式loginByAccount = driver.find_element_by_id('TANGRAM__PSP_11__footerULoginBtn')loginByAccount.click()# 到这,我们就可以输入账户和密码了# 用户名输入框userNameInput = driver.find_element_by_id('TANGRAM__PSP_11__userName')# 密码输入框passwordInput = driver.find_element_by_id('TANGRAM__PSP_11__password')# 输入信息,通过send_keys()userNameInput.send_keys('1234567890')passwordInput.send_keys('kdskdshfslda')# 登录按钮loginBtn = driver.find_element_by_id('TANGRAM__PSP_11__submit')loginBtn.click()# 到此,最基本的操作完成。# 当然,后面还有很多难关,# 现在的验证码这一块就需要很多难点,# 目前的只是很基础的操作,以后慢慢研究

4、打包

我们在写好自己的下脚本之后,但是发现只能在编辑器中进行运行。

这样肯定是不行的,我们不可能换一台电脑,还要装一遍环境和工具来运行吧。

那现在就说说python打包

4.1、打包工具

今天,哦,现在说昨天,在网上找了很多方法,通过代码打包没有成功。

这里借助工具pyinstaller来进行打包

安装这个包,应该不需要多说了,两种方式,跟文章开头一样

pip install pyinstaller

或者PyCharm工具中安装

4.2、用法

参数说明:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。