Python使用Selenium填寫問卷調查表單

2021-08-30 19:33:22 字數 3701 閱讀 1238

2、**

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

import random

# 開啟問卷主頁,

def parse_page(numzz):

driver = webdriver.chrome()

wait = webdriverwait(driver, 1) # 設定隱式等待時間

driver.get(url) # 開啟url中填寫的位址

# 填寫問卷

# 性別

xpath1 = '//*[@id="div1"]/div[2]/div[%s]' % str(random.randint(1, 2))

answer_1 = driver.find_elements_by_xpath(xpath1)[0]

answer_1.click()

# 大幾

xpath2 = '//*[@id="div2"]/div[2]/div[%s]' % str(random.randint(1, 4))

answer_2 = driver.find_elements_by_xpath(xpath2)[0]

answer_2.click()

# 現在是否戀愛

xpath3 = '//*[@id="div3"]/div[2]/div[%s]' % str(random.randint(1, 2))

answer_3 = driver.find_elements_by_xpath(xpath3)[0]

answer_3.click()

# 對戀愛的認知

xpath4 = '//*[@id="div4"]/div[2]/div[%s]' % str(random.randint(1, 3))

answer_4 = driver.find_elements_by_xpath(xpath4)[0]

answer_4.click()

# 對戀愛考慮的方面 多選

qlist_5 = [str(x) for x in range(1, 9)]

num = random.randint(2, 3)

alist_5 = random.sample(qlist_5, num) # 從1,8中隨機的選出 2 -> 3項

for i in alist_5:

xpath5 = '//*[@id="div5"]/div[2]/div[%s]' % i

answer_5 = driver.find_elements_by_xpath(xpath5)[0]

answer_5.click()

# 戀愛能接受的尺度 多選

qlist_6 = [str(x) for x in range(1, 5)]

num = random.randint(2, 4)

alist_6 = random.sample(qlist_6, num) # 從1,4中隨機的選出 2 -> 4項

for i in alist_6:

xpath6 = '//*[@id="div6"]/div[2]/div[%s]' % i

answer_6 = driver.find_elements_by_xpath(xpath5)[0]

answer_6.click()

# 維持的因素

xpath7 = '//*[@id="div7"]/div[2]/div[%s]' % str(random.randint(1, 4))

answer_7 = driver.find_elements_by_xpath(xpath7)[0]

answer_7.click()

# 買單

xpath8 = '//*[@id="div8"]/div[2]/div[%s]' % str(random.randint(1, 4))

answer_8 = driver.find_elements_by_xpath(xpath8)[0]

answer_8.click()

# 衝突

xpath9 = '//*[@id="div9"]/div[2]/div[%s]' % str(random.randint(1, 3))

answer_9 = driver.find_elements_by_xpath(xpath9)[0]

answer_9.click()

# 同性戀

xpath10 = '//*[@id="div10"]/div[2]/div[%s]' % str(random.randint(1, 2))

answer_10 = driver.find_elements_by_xpath(xpath10)[0]

answer_10.click()

# 家人看法

xpath11 = '//*[@id="div11"]/div[2]/div[%s]' % str(random.randint(1, 3))

answer_11 = driver.find_elements_by_xpath(xpath11)[0]

answer_11.click()

# 戀愛與婚姻關係

xpath12 = '//*[@id="div12"]/div[2]/div[%s]' % str(random.randint(1, 5))

answer_12 = driver.find_elements_by_xpath(xpath12)[0]

answer_12.click()

# 失戀

xpath13 = '//*[@id="div13"]/div[2]/div[%s]' % str(random.randint(1, 3))

answer_13 = driver.find_elements_by_xpath(xpath13)[0]

answer_13.click()

# 你如何看待異性知己

name_input = wait.until(ec.presence_of_element_located((by.xpath, '//*[@id="q14"]'))) # 使用xpath查詢相應的文字框的定位

name_input.clear() # 清楚可能存在的文字框(比如提示的框框)

name_input.send_keys('這個是我張文琪找人填寫的' + str(numzz) + '次 (*^__^*) 嘻嘻')

# submit

submit = wait.until(ec.presence_of_element_located((by.xpath, '//*[@id="ctlnext"]'))) # 定位提交的所在的位置

submit.click()

# # 清除快取,退出(退出瀏覽器) driver.close() 關閉當前介面

driver.close()

if __name__ == '__main__':

url = ''

for i in range(50000):

parse_page(i)

print('成功' + str(i) + '次')

3、附 selenimu中文文件:

xpath語法:

自動化測試指令碼 測試百度搜尋Selenium

自動化測試指令碼 測試用例 測試步驟 1 啟動瀏覽器 3 定位搜尋輸入框,記錄下輸入框元素的xpath表示式 id kw 6 在搜尋結果列表去判斷是否存在知乎官網這個鏈結 7 退出瀏覽器,結束測試 測試指令碼 import time from selenium import webdriver 開啟...

python元類的使用 python使用元類

原文 type 動態語言和靜態語言最大的不同,就是函式和類的定義,不是編譯時定義的,而是執行時動態建立的。比方說我們要定義乙個hello的class,就寫乙個hello.py模組 當python直譯器載入hello模組時,就會依次執行該模組的所有語句,執行結果就是動態建立出乙個hello的class...

Python精通 Python函式使用

在程式設計意義上的函式其實是指完成某種操作的 塊,當然這個是個人的理解,但是這個概念在所有的程式語言中都是通用的。這個 塊用來完成某寫特定的操作。但是在數學上的函式卻是表示某種對應關係,這兩者之間還是有一定的區別的。但是在某種角度上講我們所程式設計的這種 塊其實就是表示的是引數與返回值之間的關係。從...