Python+Selenium實(shí)現(xiàn)自動(dòng)填寫(xiě)問(wèn)卷
前提條件
熟悉Python
熟悉HTML
熟悉Xpath
熟悉Selenium
相關(guān)介紹
Python是一種跨平臺(tái)的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言。最初被設(shè)計(jì)用于編寫(xiě)自動(dòng)化腳本(shell),隨著版本的不斷更新和語(yǔ)言新功能的添加,越多被用于獨(dú)立的、大型項(xiàng)目的開(kāi)發(fā)。
Time是python標(biāo)準(zhǔn)庫(kù),無(wú)需額外下載,主要用于處理時(shí)間問(wèn)題。
Random是python標(biāo)準(zhǔn)庫(kù),其可以隨機(jī)生成數(shù)字、單詞、密碼等等。
Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。其測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作一樣,支持的瀏覽器包括IE,Mozilla Firefox,Safari,Google Chrome,Opera等。
實(shí)驗(yàn)環(huán)境
Python 3.x (面向?qū)ο蟮母呒?jí)語(yǔ)言)
Selenium 3.141.0 (python第三方庫(kù))pip3 install selenium==3.141.0
Time (python標(biāo)準(zhǔn)庫(kù))
Random(python標(biāo)準(zhǔn)庫(kù))
填寫(xiě)問(wèn)卷
問(wèn)卷地址
https://wj.qq.com/s2/9851707/76e6/
獲取Xpath
主要思路
- 導(dǎo)入所需的庫(kù)
- 創(chuàng)建一個(gè)瀏覽器對(duì)象
- 設(shè)置網(wǎng)站并訪問(wèn)
- 用find_element方法找到目標(biāo)選項(xiàng)的元素
- 用click方法模擬鼠標(biāo)點(diǎn)擊
- 用send_keys方法輸入文本
代碼實(shí)現(xiàn)
""" Created on 2022/03/15 @author: TFX """ import time import random from selenium import webdriver # 聲明瀏覽器對(duì)象,這里是谷歌瀏覽器 browser = webdriver.Chrome() # 問(wèn)卷網(wǎng)址 url = 'https://wj.qq.com/s2/9851707/76e6/' browser.get(url) time.sleep(0.5) # 等待0.5s # 填姓名 name = browser.find_element_by_xpath('//*[@id="question_q-1-0f43"]/div[2]/input') time.sleep(0.5) # 等待0.5s name.send_keys('張三') # 輸入文本 # 填性別 gender = browser.find_element_by_xpath('//*[@id="question_q-5-8b34"]/div[2]/div[1]/label/p') time.sleep(0.5) # 等待0.5s gender.click() # 填學(xué)號(hào) SID = browser.find_element_by_xpath('//*[@id="question_q-2-58d4"]/div[2]/input') time.sleep(0.5) # 等待0.5s SID.send_keys('2000010086') # 輸入文本 # 填個(gè)性簽名 motto = browser.find_element_by_xpath('//*[@id="question_q-11-5004"]/div[2]/textarea') time.sleep(0.5) # 等待0.5s motto.send_keys('學(xué)無(wú)止境!') # 輸入文本 # 提交 submit = browser.find_element_by_class_name("btn-submit") submit.click()
輸出結(jié)果
到此這篇關(guān)于Python+Selenium實(shí)現(xiàn)自動(dòng)填寫(xiě)問(wèn)卷的文章就介紹到這了,更多相關(guān)Python Selenium填寫(xiě)問(wèn)卷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pytorch使用CUDA流(CUDA?stream)的實(shí)現(xiàn)
本文主要介紹了Pytorch使用CUDA流(CUDA?stream)的實(shí)現(xiàn),CUDA流是在GPU上并行執(zhí)行操作的一種機(jī)制,通過(guò)使用CUDA流,可以將不同的操作分配給不同的流,在不同的流上并行執(zhí)行這些操作,從而提高代碼的性能2023-12-12django 連接數(shù)據(jù)庫(kù)出現(xiàn)1045錯(cuò)誤的解決方式
這篇文章主要介紹了django 連接數(shù)據(jù)庫(kù)出現(xiàn)1045錯(cuò)誤的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05如何用python獲取EXCEL文件內(nèi)容并保存到DBC
很多時(shí)候,使用python進(jìn)行數(shù)據(jù)分析的第一步就是讀取excel文件,下面這篇文章主要給大家介紹了關(guān)于如何用python獲取EXCEL文件內(nèi)容并保存到DBC的相關(guān)資料,需要的朋友可以參考2023-12-12Windows上配置Emacs來(lái)開(kāi)發(fā)Python及用Python擴(kuò)展Emacs
這篇文章主要介紹了Windows上配置Emacs來(lái)開(kāi)發(fā)Python及用Python擴(kuò)展Emacs的方法,Emacs與Vim并稱為開(kāi)發(fā)者手中最強(qiáng)大的兩款文本編輯器,需要的朋友可以參考下2015-11-11動(dòng)態(tài)設(shè)置django的model field的默認(rèn)值操作步驟
這篇文章主要介紹了動(dòng)態(tài)設(shè)置django的model field的默認(rèn)值操作步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03python?實(shí)現(xiàn)兩個(gè)字符串乘法小練習(xí)
這篇文章主要給大家分享的是python?實(shí)現(xiàn)兩個(gè)字符串乘法小練習(xí),兩個(gè)字符串相乘,基本思路是num1依次乘以num2各個(gè)數(shù)位上的數(shù)字,下面分享的內(nèi)容,可作為大家平時(shí)學(xué)習(xí)的小練習(xí),需要的朋友可以參考下,希望對(duì)你的學(xué)習(xí)有所幫助2022-02-02Python Django 實(shí)現(xiàn)簡(jiǎn)單注冊(cè)功能過(guò)程詳解
這篇文章主要介紹了Python Django 實(shí)現(xiàn)簡(jiǎn)單注冊(cè)功能過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07在Python中測(cè)試訪問(wèn)同一數(shù)據(jù)的競(jìng)爭(zhēng)條件的方法
這篇文章主要介紹了在Python中測(cè)試訪問(wèn)同一數(shù)據(jù)的競(jìng)爭(zhēng)條件的方法,探究多線程或多進(jìn)程情況下優(yōu)先訪問(wèn)權(quán)的問(wèn)題,需要的朋友可以參考下2015-04-04