python Selenium学习

mport random
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.common.exceptions import NoSuchElementException,StaleElementReferenceException,ElementNotVisibleException,TimeoutException,WebDriverException
import time
import os
import sys

USER_NAME='137'
PASS_WORD=''
dr=webdriver.Firefox()#Chrome()#
dr.maximize_window()
fp='137.txt'
urls=[]
def Login():
    
    home=''
    dr.get(home)
    wait=WebDriverWait(dr,10)
    locator=(By.ID,'username')        
    try:
        username=wait.until(EC.visibility_of_element_located(locator))
        username.send_keys(USER_NAME)
    except:
        print('未发现用户表单控件')
    try:
        password=dr.find_element_by_id('password')
        password.send_keys(PASS_WORD)
    except:
        print('未发现密码表单控件')
    try:
        loginBtn=dr.find_element_by_id('loginBtn')
        loginBtn.click()
    except:
        print('未发现登录按钮')
        
    wait=WebDriverWait(dr,10)
    locator=(By.XPATH,'//a[text()="2019年第2期"]') 
    try:
        tag=wait.until(EC.visibility_of_element_located(locator))
        #tag.click()
        return True
    except:
        return False
def AccessCoure():
    wait=WebDriverWait(dr,10)
    locator=(By.XPATH,'//a[text()="2019年第2期"]') 
    try:
        tag=wait.until(EC.visibility_of_element_located(locator))
        tag.click()
        print('进入课程页面')
    except:
        pass
def ExpandCourses():
    time.sleep(3)
    dr.switch_to_window(dr.window_handles[1])
    treeOnes=dr.find_elements_by_xpath('//div[@class="tier-tree-one "]/p[@class="tier1 has-children"]/i')
    print('章数量'+str(len(treeOnes)))
    for treeone in treeOnes:
        treeone.click()

    treeTwos=dr.find_elements_by_xpath('//div/div[@class="tier-tree-two tier-tree-inner "]/p/i')
    print('节数量'+str(len(treeTwos)))
    for treeTwo in treeTwos:
        treeTwo.click()

    unfinishs=dr.find_elements_by_xpath('//font[text()="未完成"]/parent::span/parent::p/span[contains(text(),"学习内容")]/following-sibling::span/a')
    print('未完成数量'+str(len(unfinishs)))
    for  a in unfinishs:
        print(a.text)
    if len(unfinishs)>0:
        unfinishs[0].click()
        return True
    else:
        return False


def BeginStudy():
    time.sleep(3)
   
    #dr.switch_to_window(dr.window_handles[1])
    vdo=dr.find_element_by_id('ckplayer_a1')
    vdo.click()
    duration=dr.execute_script("return arguments[0].duration;", vdo)#playbackRate=5
    duration=dr.execute_script("return arguments[0].playbackRate=2;", vdo)
    print("该视频的观看时长为:" + str(duration) +"秒!" )
    time.sleep(int(duration)+1000)#
    dr.back()
    #单击确认完成呢
if __name__=='__main__':
    print(Login())
    AccessCoure()
    #GetCourseUrls()
    while ExpandCourses():
       BeginStudy() 
    #BeginStudy()

  

原文地址:https://www.cnblogs.com/nextseven/p/11722370.html