import threading
import time
import datetime
import schedule
from selenium import webdriver
chrome_driver=r"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/chrome/chromedriver"
browser=webdriver.Chrome(executable_path=chrome_driver)
# 请求登陆页面
browser.get('访问页面url')
# 登陆
def login(number, password):
phone_name = browser.find_element_by_id('login') # 通过id定位,手机号码
phone_name.click()
phone_number = browser.find_element_by_id('uname') # 通过id定位,账号
pwd = browser.find_element_by_id('pwd') # 密码
login_btn = browser.find_element_by_id('loginBypwdBtn') # 登陆按钮
phone_number.send_keys(number) # 输入手机号码或账号密码
pwd.send_keys(password) # 输入密码
login_btn.click() # 点击登陆按钮
time.sleep(3)
xuexi = browser.find_element_by_class_name('button') # 定位进入学习按钮
xuexi.click() # 点击学习按钮
time.sleep(3)
# 转到播放视频页面
def to_course():
for i in range(1,49):
# 获取当前时间
time.sleep(3)
browser.get('https://degree.qingshuxuetang.com/gd/Student/CourseShow?teachPlanId=310&periodId=13&courseId=839&cw_nodeId=kcjs_%s'%(i))
video = browser.find_element_by_id('playerContainer') # 定位视频窗口
video.click() # 点击播放
time.sleep(3600)
schedule.every(1).minutes.do(to_course)
# if datetime.datetime.now()== datetime.datetime.now()+datetime.timedelta(hours=1):
# 当前视频播放结束,点击下一节
# js = "document.ElementById('nextBtn').click()" # js脚本
# browser.execute_script(js)
# if i ==49:
# pass
# return
# try:
# video = browser.find_element_by_id('playerContainer') # 定位视频窗口
# video.click() # 点击播放
# except:
# pass
#
# try:
# # video = browser.find_element_by_id('mediaplayer') # 定位视频窗口
# # 获取当前播放的进度
# current_time = browser.find_element_by_class_name('timetextchpsuydshice').get_attribute('textContent')
# print(current_time,33333333333333333333)
# textContent=current_time.split()
# if textContent[0] == textContent[1]:
# # 当前视频播放结束,点击下一节
# # js = "document.ElementById('nextBtn').click()" # js脚本
# # browser.execute_script(js)
# res =False
# time.sleep(10) # 10秒检测一次
#
# except:
# current_time = '00:00'
# total_time = '00:01'
#
# if i ==3:
# break
# current = browser.current_window_handle # 当前页面的句柄
# key = browser.find_element_by_partial_link_text(key) # 找到课程
# key.click() # 跳转到播放视频页面
# time.sleep(1) # 等待页面加载
# # 因为跳转到新的页面,所以browser要切换到新的页面操作
# handles = browser.window_handles
# for handle in handles:
# if handle != current:
# browser.switch_to.window(handle)
# time.sleep(10)
# try:
# video = browser.find_element_by_id('mediaplayer') # 定位视频窗口
# video.click() # 点击播放
# except:
# pass
# 判断是否有答题窗口弹出
# def is_exist():
# while True:
# try:
# browser.switch_to.default_content()
# browser.switch_to.frame('tmDialog_iframe') # 答题窗口在另一个frame里面,要切换
# box = browser.find_elements_by_class_name('answerOption') # 答题列表
# radio = box[0].find_element_by_tag_name('input') # 找到第一个选项
# radio.click() # 选择
# browser.switch_to.default_content()
# browser.find_element_by_link_text('关闭').click() # 关闭答题窗口
#
# except:
# browser.switch_to.parent_frame() # 没有弹出,切换回本来的frame
# time.sleep(5)
# 判断当前视频是否结束
# def is_end():
# while True:
# try:
# video = browser.find_element_by_id('mediaplayer') # 定位视频窗口
# # 获取当前播放的进度
# current_time = video.find_element_by_class_name('currentTime').get_attribute('textContent')
# # 该视频的总时间
# total_time = video.find_element_by_class_name('duration').get_attribute('textContent')
# print(current_time, total_time)
# if current_time == total_time:
# # 当前视频播放结束,点击下一节
# js = "document.ElementById('nextBtn').click()" # js脚本
# browser.execute_script(js)
#
# time.sleep(10) # 10秒检测一次
#
# except:
# current_time = '00:00'
# total_time = '00:01'
if __name__ == '__main__':
'''
number=''#手机号码
password=''#密码
key=''#课程名称,可以部分名字
'''
login("账号", "密码")
to_course()
# 开两个线程
# t1 = threading.Thread(target=is_exist)
# t2 = threading.Thread(target=is_end)
# t2.start()
# time.sleep(3)
# t1.start()
# t2.join()
# t1.join()