zoukankan      html  css  js  c++  java
  • 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()
    

      

  • 相关阅读:
    CF919F A Game With Numbers
    CF1005F Berland and the Shortest Paths
    CF915F Imbalance Value of a Tree
    CF1027F Session in BSU
    CF1029E Tree with Small Distances
    CF1037E Trips
    CF508E Arthur and Brackets
    CF1042F Leaf Sets
    [HNOI2012]永无乡
    [BZOJ1688][Usaco2005 Open]Disease Manangement 疾病管理
  • 原文地址:https://www.cnblogs.com/nextseven/p/11722370.html
Copyright © 2011-2022 走看看