在学习Python 的过程中学习到selenium这个模块。

Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
Selenium 测试工具直接操控浏览器,就像真正的用户在操作一样。Selenium 可以根据的指令,让浏览器自动加载页面,获取需要的数据。

安装Selenium模块命令:pip install selenium

环境:Python 3.7
浏览器:Chrome
浏览器驱动地址(国内)

ps:根据自己的浏览器版本,下载对应的浏览器驱动。

实战测试

需求:填写问卷星。随机填写题目。
链接:问卷星链接地址

该问卷星是自己创建,用来练习selenium。一共四个题,单选,多选,排序,以及填空题。
导入测试所需要用的模块,创建一个实例。

from selenium import webdriver
import random
drive = webdriver.Chrome()
drive.get('https://www.wjx.cn/jq/58914455.aspx')

1.

首先,通过浏览器的开发者工具找到元素所在的位置。如果下图,4个li标签便是对应的4个按钮。找出li标签位置,这里我使用的是CSS选择器提取。

通过浏览器的开发者工具,获取到元素位置

# 会随机选择四个按钮中的其中一个。这里用到了Python内置的random模块
first_question = drive.find_elements_by_css_selector('#divquestion1 ul li')
first_question[random.randint(0,len(first_question)-1)].click()

2.

    second_question = drive.find_elements_by_css_selector('#divquestion2 ul li')length = len(second_question)# 二元表达式choice = [x for x in range(length)]# 使用random模块,随机选择两个选项choice = random.choices(choice,k=int(length / 2))for i in choice:second_question[i].click()

3.

third_question = drive.find_elements_by_css_selector('#divquestion3 ul li')length = [x for x in range(len(third_question))]# 将列表length序列打乱random.shuffle(length)for i in length:third_question[i].click()

4.

fourth_question = drive.find_element_by_css_selector('#q4')
fourth_question.send_keys('hello world')

完整代码:

from selenium import webdriver
import randomdrive = webdriver.Chrome()
drive.get('https://www.wjx.cn/jq/58914455.aspx')# 这里将每一题定义成一个函数
def one():"""第一题"""first_question = drive.find_elements_by_css_selector('#divquestion1 ul li')first_question[random.randint(0, len(first_question) - 1)].click()def two():"""第二题"""second_question = drive.find_elements_by_css_selector('#divquestion2 ul li')length = len(second_question)choice = [x for x in range(length)]choice = random.choices(choice, k=int(length / 2))for i in choice:second_question[i].click()def three():"""第三题"""third_question = drive.find_elements_by_css_selector('#divquestion3 ul li')length = [x for x in range(len(third_question))]random.shuffle(length)for i in length:third_question[i].click()def four():"""第四题"""fourth_question = drive.find_element_by_css_selector('#q4')fourth_question.send_keys('hello world')# 阻塞
input()drive.quit()

注意事项
浏览器的驱动必须和代码文件放在同一目录下。如果放在不同目录则需要加驱动所在的绝对路径。如放在D盘的python文件夹下,创建实例代码为:drive = webdriver.Chrome(executable_path='D:\\python\\chromedriver_80.0.3987.16.exe')

Python~selenium填写问卷星相关推荐

  1. python自动填写问卷星

    python自动填写问卷星 参考链接1 参考链接2 用python实现自动填问卷,通过智能验证以及滑动验证 1. 下载浏览器驱动 python自动化填写问卷需要依赖浏览器驱动,这里使用的是谷歌浏览器, ...

  2. python + selenium 实现 问卷星自动抢讲座

    python + selenium 实现 问卷星自动抢讲座,抢不到讲座的同学可以借鉴一下 这是我写的代码 from selenium import webdriver from selenium.we ...

  3. python+selenium 实现 问卷星自动抢讲座

    python + selenium 实现 问卷星自动抢讲座 文章目录 python + selenium 实现 问卷星自动抢讲座 一.代码 二.解析 1.安装selenium库 1)PyCharm 编 ...

  4. python批量填写问卷星问卷

    一.授人以鱼 如果想直接拿代码就用,不想了解具体设计思路,那看本节内容就够了.到文末复制代码,以下是使用教程: 需要在main函数给定3个参数,URL(问卷的链接).answer(问卷答案),num( ...

  5. python填写问卷星_使用Python自动填写问卷星(pyppeteer反爬虫版)

    from selenium importwebdriverimporttimeimportrandomdefrun(): browser=webdriver.Chrome() browser.get( ...

  6. python爬虫之自动填写问卷星调查表

    系列文章目录 python爬虫之自动填写问卷星调查表 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一.python爬虫填写问卷星 二.使用步骤总结 ...

  7. 【python】自动填写问卷星问卷及提交

    前言:问卷是很好的网络调查方式之一,近年来,问卷星被广泛应用于各方面的调查.本文介绍了利用python代码自动填写问卷星基本题目,拥有自动填写.解决智能验证.批量提交问卷等功能. 目录 1.下载浏览器 ...

  8. python自动填写问卷_Python填写问卷星

    Python填写问卷星 有些无意义的问卷作业,真的没有必要. 但是作业既然有了,那就想办法解决它把. 关于IP限制的问题,可以使用X-Forwarded-For更换IP. 只会用印象笔记markdow ...

  9. Selenium自动填写问卷星

    Selenium自动填写问卷星 代码 注意 代码 from selenium import webdriver import random import time import numpy as np ...

最新文章

  1. 翻译的艺术 —— 无能为力的翻译,搞笑的音译
  2. Angular 动态控制 aside 标签显示和隐藏的一个例子
  3. Oracle 使用GSON库解析复杂json串
  4. 彻底搞懂javascript中的match, exec的区别
  5. 图像过滤,so easy~~
  6. 19.TCP/IP 详解卷1 --- TCP 的交互数据流
  7. 天正如何转为t3_[转载]天正文件转T3格式CAD图
  8. 关系运算符和逻辑运算符
  9. mocha java mv_代码覆盖Mocha
  10. 循环结构--for循环
  11. SpringBoot写配置文件报错“The elements [xxx,xxx] were left unbound.“
  12. 遗传基因科普(8):奇妙的双螺旋结构
  13. 塞班S60V5上的画图工具
  14. 华为Android岗面经;群面+技术面+英语面+面试题详解
  15. 如何利用鸟笼效应将消费者留在营销的“鸟笼”中?
  16. 生成pdf带跳转的书签
  17. 服务器系统关闭显卡加速,Windows Server2008 R2性能优化方法
  18. Java | 将图片转换为txt文件
  19. 如果用户计算机已接入,计算机应用基础第七章复习题.doc
  20. 支付宝担保交易接口 php,ThinkPHP实现支付宝接口功能(担保交易)

热门文章

  1. 使用Arcgis获取城市交通小区
  2. 自由与平等在某种意义上是相互矛盾的
  3. varchar 保存英文中文区别
  4. GIT 简要使用指南 克隆、分支、提交
  5. 制造业ERP系统开创生产设备管理黑科技
  6. android+qq浏览器,良心发现之作 QQ浏览器5.0安卓内测版体验
  7. 辩驳一个默认的说法:IE6不支持!important (转http://www.cnblogs.com/lanyueer/archive/2011/03/29/1998398.html)
  8. JVM原理优化及GC
  9. 英文学术写作:语步分析(引言)
  10. 运输层协议TCP与网络编程