python下selenium模拟浏览器常见操作
生活随笔
收集整理的這篇文章主要介紹了
python下selenium模拟浏览器常见操作
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本文主要記錄下selenium的常見操作,如定位具體元素的不同方法、在具體元素內(nèi)循環(huán)、提取文本等。具體代碼如下:
# -*- coding: utf-8 -*- ''' Created on 2019年4月30日@author: cvter ''' from selenium import webdriver import time import pandas as pd import numpy as np import reif __name__ == "__main__":#設(shè)置瀏覽器driver = webdriver.Chrome(r"D:\\Program Files\\chromedriver.exe")#driver.set_window_size(1920, 1080)#模擬登錄driver.get('http://www.yoursite.com/') #driver.find_element_by_id("username").send_keys("yourname")#driver.find_element_by_id("passwdInput").send_keys("yourpassword")#driver.find_element_by_id("loginSubmit").submit()time.sleep(50)#手動登錄,并進入到開始做題頁面windows = driver.window_handlesdriver.switch_to.window(windows[-1])#切換當(dāng)前窗口queAll = []#保存本頁所有題目 subType = driver.find_element_by_class_name("title").text#科目類別 subCon = driver.find_element_by_xpath("//*[@class='title set-title']").text#科目考核內(nèi)容 queNum = driver.find_element_by_class_name("zts-yz").text#獲取本頁題目總數(shù) for i in range(int(re.findall(r"\d+\.?\d*",queNum)[0])):queOne = []#保存一道題目queOne.append(subType)#所屬學(xué)科queOne.append(subCon)#考核內(nèi)容eleQue=driver.find_element_by_id("layer-photos-demo"+str(i+1))queCon=eleQue.find_element_by_class_name("form-label").text #題干queOne.append(queCon)queAns=eleQue.find_elements_by_tag_name("input")for q in queAns:if q.get_attribute("value")=="A":#選項AqueAnsA=q.get_attribute("title")if queAnsA: queOne.append(queAnsA) if q.get_attribute("value")=="B":#選項BqueAnsB=q.get_attribute("title")if queAnsB:queOne.append(queAnsB)if q.get_attribute("value")=="C":#選項CqueAnsC=q.get_attribute("title")if queAnsC:queOne.append(queAnsC)if q.get_attribute("value")=="D":#選項DqueAnsD=q.get_attribute("title")if queAnsD:queOne.append(queAnsD)if q.get_attribute("value")=="E":#選項EqueAnsE=q.get_attribute("title")if queAnsE:queOne.append(queAnsE)queOpts = eleQue.find_elements_by_tag_name("i")queOpts[0].click()time.sleep(2)quePar=eleQue.find_element_by_class_name("dats").text.replace('\n','')#提取文本并替換分行符queOne.append(quePar[quePar.find("正確答案"):])#正確答案及解析print (queOne)queAll.append(queOne)data = pd.DataFrame(queAll,columns=['subType', 'subCon', 'queCon','queAnsA','queAnsB','queAnsC','queAnsD','queAnsE','quePar'])#轉(zhuǎn)DataFramedata.to_csv("D:\\tmp\\med\\6.csv",index=False,sep='|')#關(guān)閉瀏覽器driver.close() driver.quit()?
總結(jié)
以上是生活随笔為你收集整理的python下selenium模拟浏览器常见操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux上传github项目
- 下一篇: pandas分批读取csv文件