生活随笔
收集整理的這篇文章主要介紹了
                                
刷网课seleinum 小程序
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
 
                                
                            
                            
                            遇到的問題看的參考文章如下
 知乎 selenium iframe處理
 CSDN Selenium在定位的class含有空格的復(fù)合類的解決辦法
 Python+Selenium筆記(九):操作警告和彈出框
 Python3 錯誤和異常的使用
 selenium之 玩轉(zhuǎn)鼠標(biāo)鍵盤操作(ActionChains)
 selenium 瀏覽器導(dǎo)航操作
 根據(jù)ManicTime顯示,大約花了10小時左右
 
from selenium 
import webdriver
from selenium
.webdriver
.common
.keys 
import Keys
from selenium
.webdriver
.common
.action_chains 
import ActionChains
import re
import time
studentId 
= *******
password 
= '*******'
kaishi 
= '1.1'
jieshu 
= '11.1'
def logon(driver
):driver
.get
(r
'********')driver
.find_element_by_class_name
('loginBtn').click
()driver
.find_element_by_name
('uname').send_keys
(studentId
)driver
.find_element_by_name
('password').send_keys
(password
)def enterCourse(driver
,courseUrl
):driver
.get
(courseUrl
)def acquireUnits(driver
,startId
,endId
):   units 
= driver
.find_elements_by_class_name
('units')unitsDict 
= {}a 
= 0for i 
in units
:a 
= a
+1z 
= 0print(i
.text
.split
('\n')[0:2])for i_1 
in i
.find_elements_by_class_name
('articlename'):z 
+= 1unitsDict
[f
'{str(a)}.{str(z)}'] = i_1
.find_element_by_tag_name
('a').get_attribute
('href')print(f
'---{str(a)}.{str(z)}{i_1.text}')unitsId 
= list(unitsDict
.keys
())pickUnitsId 
= unitsId
[unitsId
.index
(startId
):unitsId
.index
(endId
)+1]pickUnitsObj 
= [unitsDict
[i_2
] for i_2 
in pickUnitsId
]return pickUnitsObj
def initStart(driver
,url
):  driver
.get
(url
)for i 
in range(2,4):try:time
.sleep
(2)driver
.switch_to
.frame
('iframe')  iframe 
= driver
.find_element_by_css_selector
(".ans-attach-online.ans-insertvideo-online")  driver
.switch_to
.frame
(iframe
)  driver
.find_element_by_css_selector
(".vjs-big-play-button").click
()  time
.sleep
(3)driver
.find_element_by_xpath
('//*[@id="video"]/div[4]/button[1]').click
()time
.sleep
(3)return driver
.find_element_by_xpath
('//*[@id="video"]/div[4]/div[4]/span[2]').text
breakexcept Exception 
as e
:print(e
)driver
.get
(url
)time
.sleep
(1)driver
.find_element_by_id
(f
'dct{i}').click
()print("本頁非播放播放頁,切換")def test(driver
):   try:for i 
in driver
.find_elements_by_name
("ans-videoquiz-opt"):  i
.click
()driver
.find_element_by_class_name
('ans-videoquiz-submit').click
() time
.sleep
(1)try:driver
.find_element_by_class_name
('ans-videoquiz-submit').click
()except Exception 
as e
:if "Alert" == str(e
).split
(' ')[0]:driver
.switch_to
.alert
.accept
()else:print(e
)except:passdef check(driver
):try:if driver
.find_element_by_xpath
('//*[@id="video"]/div[4]/button[1]/span[2]').text 
== '播放':try:driver
.find_element_by_xpath
('//*[@id="video"]/div[4]/button[1]').click
()return Falseexcept:test
(driver
)elif driver
.find_element_by_xpath
('//*[@id="video"]/div[4]/button[1]/span[2]').text 
== '重播':return Trueelse:return Falseexcept Exception 
as e
: print(e
)return Falsedef main():driver
=webdriver
.Chrome
()  logon
(driver
)enterCourse
(driver
,str(input('請輸入課程url:\n')))time
.sleep
(1)units 
= acquireUnits
(driver
,kaishi
,jieshu
)for i 
in units
:try:allTime 
= initStart
(driver
,units
[i
])print(f
'當(dāng)前視頻時間:{allTime}')allTime 
= int(allTime
[:2]) * 60 + int(allTime
[-2:])while True:if check
(driver
):print("本視頻結(jié)束,進(jìn)入下一個")breaktime
.sleep
(5)except:breakif __name__ 
== "__main__":driver
=webdriver
.Chrome
()  logon
(driver
)enterCourse
(driver
,str(input('請輸入課程url:\n')))time
.sleep
(1)units 
= acquireUnits
(driver
,kaishi
,jieshu
)for i 
in units
:try:allTime 
= initStart
(driver
,units
[i
])print(f
'當(dāng)前視頻時間:{allTime}')allTime 
= int(allTime
[:2]) * 60 + int(allTime
[-2:])while True:if check
(driver
):print("本視頻結(jié)束,進(jìn)入下一個")breaktime
.sleep
(5)except:break
                            總結(jié)
                            
                                以上是生活随笔為你收集整理的刷网课seleinum 小程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                            
                                如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。