前言
代码的起因是一位会 计专业的同学有自动化的需求,学校实训要求刷题几千道,题目都是选择题填空题,为实现他的需求,我找了一个类似的网站练练手
目标网址为:高中在线刷题网-可以在线刷题的高中题库
选择题界面如下,点击任意选项后,显示正确答案
代码难点:
本次代码难度不高,但界面元素的定位略麻烦,需要切换多重定位方式,还有选择题界面要先获取正确答案,再通过正确答案去勾选正确的选项
下面贴出代码:
import time
from selenium import webdriver
b = 1
driver = webdriver.Chrome()
driver.get("http://gz.shuatiw.com/index.php?user-app-login")
driver.maximize_window()
driver.find_element_by_name('args[username]').send_keys('自己创建') #输入账号
driver.find_element_by_name('args[userpassword]').send_keys('自己创建') #输入密码
driver.find_element_by_xpath('//button[@class="btn btn-primary btn-block"]').click() #点击登录
time.sleep(2)
#driver.find_element_by_xpath('//a[@class="thumbnail"]').click()
driver.find_element_by_xpath('/html/body/div[6]/div/div/div/div/div/div[2]/a/img').click() #点击课程
driver.find_element_by_xpath('//a[@class="btn btn-primary"]').click() #点击题库
driver.find_element_by_css_selector('#panel-element-1 > ul > li:nth-child(1) > a.btn.btn-default.pull-right').click() #点击开始做题
for a in range(100):
driver.find_element_by_xpath('//span[@class="selector"]').click() #点击任意选项
flag = driver.find_element_by_xpath('//span[@class="text-success"]').text #获取正确答案
print('第%d题答案为%s'%(b,flag))
if flag == 'A':
driver.find_element_by_xpath('//*[@id="selectbox"]/div/div[1]/label/span').click()
elif flag == 'B':
driver.find_element_by_xpath('//*[@id="selectbox"]/div/div[2]/label/span').click()
elif flag == 'C':
driver.find_element_by_xpath('//*[@id="selectbox"]/div/div[3]/label/span').click()
else:
driver.find_element_by_xpath('//*[@id="selectbox"]/div/div[4]/label/span').click()
driver.find_element_by_link_text('下一题').click()
b += 1