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

it2023-10-30  75

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

文章目录

python + selenium 实现 问卷星自动抢讲座一、代码二、解析1、安装selenium库1)PyCharm 编辑器2)IDLE 2、Selenium 简介及使用3、搞定收工

一、代码

from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC def autoFillSpace(username,sid,dept,myclass,phone): chromeOptions = webdriver.ChromeOptions() # 实例化 browser = webdriver.Chrome(chrome_options=chromeOptions) wait = WebDriverWait(browser, 3) # 等待时间 browser.get(url) # 获取问卷星 url # 问卷详情 # 姓名 usernameIn = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="q1"]'))) # F12查看,匹配对应的id usernameIn.clear() usernameIn.send_keys(username) # 这个传入的参数不能跟上面的对象重复 # 学号 sidIn = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="q2"]'))) sidIn.clear() sidIn.send_keys(sid) # 学院 deptIn = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="q3"]'))) deptIn.clear() deptIn.send_keys(dept) # 班级 myclassIn = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="q4"]'))) myclassIn.clear() myclassIn.send_keys(myclass) # 手机号码 phoneIn = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="q5"]'))) phoneIn.clear() phoneIn.send_keys(phone) # 提交 submit = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="ctlNext"]'))) submit.click() if __name__ == '__main__': url ='https://www.wjx.top/m/94513751.aspx' # 问卷星的链接 username = '不可能打工' # 姓名 sid = '20201020' # 学号 dept = 'xx学院' # 学院 myclass = '自动化3班' # 班级 phone = '13000000000' # 手机号码 autoFillSpace(username,sid,dept,myclass,phone)

二、解析

1、安装selenium库

不同的小伙伴可能使用不同的编辑器,下面对常见的两种编辑器进行库的安装讲解

1)PyCharm 编辑器

将上面的代码拷贝到你的编辑器里,有 selenium 的地方会爆红,就是因为本地没有安装这个包,下面我跟大家说下如果进行安装。

打开“文件 --> 设置”:

查看本地是否有 selenium 包,如果有,跳到下一步,如果没有,点击右上方 “绿色的 + 号,然后搜索这个包,点击 install 安装:

2)IDLE

IDLE 是 Python 所内置的开发与学习环境。使用 IDLE 开发的小伙伴,安装 selenium 包 的方式与上面用 PyCharm 不太一样,具体方式如下:

键盘按 ” win + R “ ,输入cmd ,进行命令行窗口:

在命令行窗口用命令 pip list查看你当前已经安装的包,看看是否有 selenium 包,

C:\Users\username>pip list Package Version ---------------------------------- ---------- selenium 3.141.0

如果没有的话,通过下面命令安装

pip install selenium

2、Selenium 简介及使用

Selenium 是 web 自动化测试工具集,Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括 IE(7, 8, 9, 10, 11),Safari,Google Chrome,Opera 等。

Selenium3.x 调用浏览器必须有一个 webdriver 驱动文件,

我使用的 Chrome 浏览器,下面以 Chrome 浏览器为例。

先进入到 ”帮助 -> 关于“ 查看浏览器版本:

然后接下来需要安装Chrome 驱动文件,进入到谷歌浏览器驱动的下载网址 http://chromedriver.storage.googleapis.com/index.html

找到对应版本的驱动文件:

(大版本对应,最后的小版本号可以不对应,没什么影响的)

然后选择你当前的操作系统,下载压缩文件并解压:

(注:win64系统对win32向下兼容,Windows系统直接下载 chromedriver_win32.zip 即可)

解压后可以看到一个 .exe 应用程序,将这个应用程序文件拷贝并粘贴到以下两个地方:

(1)C:\Program Files (x86)\Google\Chrome\Application

(2)python 的安装目录,我这里的路径是:

注:

如果不安装相应版本的驱动文件,待会运行程序有可能会报错:”selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’“。

主要就是因为 selenium 模拟的客户端对浏览器的操作,但相应浏览器的驱动版本不匹配导致的。

3、搞定收工

到这里,项目就可以成功运行了,不会报错了,舒服舒服,终于可以快快乐乐的抢到讲座了!!!

最新回复(0)