【记录】一个自动投票的小程序(python实现)

又是一学期一度的填问卷时期,但是求爷爷告奶奶也不会收集到太多的。所以,作为自动化专业的我就要想一种方法自动填问卷,这样不就短时间内可以“收集”到很多很多的问卷了。

首先选择开发语言:python,据说这不仅仅是一门语言,还是一个非常有效的自动化办公工具。python环境的安装可以自行百度。

首先我们需要做一下准备工作

第一步、安装依赖库

selenium:自动化web测试工具,所以我们就拿它自动化测试我们的问卷喽,安装方法也很简单。

pip install selenium

第二步、安装 相关驱动

如果是谷歌浏览器就是点击这里连接

https://npm.taobao.org/mirrors/chromedriver/

如果是火狐浏览器就是点击这里连接

https://github.com/mozilla/geckodriver/releases

下载完成之后把它放在你的那个工程目录下就行了,像这样

最后就是准备如何获取网页元素的工作了

元素位置的描述用的是一中叫xPath的语言,如果每一个选项的位置都知道了,那么在然python自动去点击它不就行了?找这个路径用的是xPath Finder这个插件,在火狐浏览器中长这样

怎么下载?在工具管理中直接打xPath Finder就行。

准备工作做完了之后,就正式开始程序的编写了。

首先,我们需要获取选项的位置信息。

以我的问卷为例。地址

https://www.wjx.cn/jq/51119308.aspx

第一步输入网址进入界面

第二步点开xPath Finder

第三步点击第一道题的第一个选项的位置便可以在左下角看到。

其中我们需要的就是这个

html/body/div[2]/div[1]/div[2]/div[1]/div/div[1]/div[2]/div[2]/fieldset/div[1]/div[2]/ul/li[1]/a

多点几个就会发现有规律

最后的li[]是控制选项选哪个,fieldset/div[]这个是控制选择题号,那么我们通过随机数函数生成一个一到四的选项,然后在一条一条的填不就行了?

如果都是问卷星的话,可以省略上述的步骤因为这些选项的位置信息是一样的,按照规则改就行。

最后一步就是写程序了

首先引入相应的包

import timeimport randomfrom selenium import webdriverfrom selenium.webdriver.firefox.options import Options

然后就开始用python自动填写了

selenium这个工具非常好用,在python下也十分简单

举个例子

browser = webdriver.Firefox() #创建一个火狐浏览器的对象browser.get('https://www.wjx.cn/jq/51119308.aspx') #输入你想要测试的地址#下面就是输入操作,找到相应元素的位置然后点击它browser.find_element_by_xpath(            "/html/body/div[2]/div[1]/div[2]/div[1]/div/div[1]/div[2]/div[2]/fieldset/div[1]/div[2]/ul/li[%s]/a"% str(                random.randint(1,2))).click()#随机生成一个一到二的随机数然后将其填入最后browser.quit() #退出游览器

这只是一个简单的示例,详细的可以从以下下载

链接:https://pan.baidu.com/s/1xyogRHGj312nY3XAylN8jw

提取码:3xgs

欢迎关注我的博客

发布了25 篇原创文章 · 获赞 19 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/little_engineer/article/details/103460222