zoukankan      html  css  js  c++  java
  • 利用网易云音乐体会Selenium各种方法的使用

    from selenium import webdriver
    import  time
    #显示等待的导入
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as ec
    
    from selenium.webdriver.common.keys import Keys
    # 用webdriver启动浏览器
    dr=webdriver.Chrome()
    #打开网易云音乐页面
    dr.get('https://music.163.com/')
    # 设置窗口的长宽
    # dr.set_window_size(1800,800)
    #设置窗口最大化
    dr.maximize_window()
    
    #设置全局的隐式等待(直到找到元素)
    dr.implicitly_wait(10)
    
    #显示等待,直到元素可见
    ele=WebDriverWait(dr,5,0.5).until(
        ec.visibility_of_element_located((By.ID,"g_nav2"))
        )
    # 截屏,截取整个界面
    dr.get_screenshot_as_file('./v.png')
    # 截屏,截取某个元素
    ele.screenshot('./p.png')
    
    #获取元素的大小
    print('元素的大小:',ele.size)
    #元素是否显示
    print('元素是否显示:',ele.is_displayed())
    #获取当前窗口
    print(dr.title)
    #获取当前的url
    print(dr.current_url)
    #获取当前窗口(窗口句柄)
    print('窗口句柄:',dr.current_window_handle)
    
    #点击排行榜
    dr.find_element_by_css_selector('ul[class="nav"]>li:nth-of-type(2)').click()
    
    #webdriver切换frame
    dr.switch_to.frame('g_iframe')
    time.sleep(2)
    #点击播放,可以开始听歌了
    dr.find_element_by_css_selector('[class="btns f-cb"]>a:nth-of-type(1)').click()
    #听20秒这首歌
    time.sleep(10)
    
    # 切换到上一层frame  在这里两种方法都适用,只有一个主HTML和一个嵌套的frame
    dr.switch_to.parent_frame()
    
    # # 从里面的frame切换到主HTML
    # dr.switch_to.default_content()
    
    #文本框输入 [歌名]
    dr.find_element_by_css_selector('#srch').send_keys('I Am You')
    
    #输入回车
    dr.find_element_by_css_selector('#srch').send_keys(Keys.ENTER)
    
    #哈哈,这里又需要切换iframe
    #webdriver切换frame
    dr.switch_to.frame('g_iframe')
    time.sleep(2)
    
    #播放这首歌
    song=dr.find_element_by_css_selector('[class="srchsongst"]>[class="item f-cb h-flag  "]:nth-of-type(1)>div:nth-of-type(1)')
    #显示等待,直到元素可见
    ele=WebDriverWait(dr,5,0.5).until(
        ec.visibility_of(song)
        )
    song.click()
    
    
    #强制等待30秒,再听会歌~
    time.sleep(30)
    
    print('结束了~~~')
    #关闭所有窗口 dr.quit()
  • 相关阅读:
    02. 爬取get请求的页面数据
    配置visual studio code进行asp.net core rc2的开发(转载jeffreywu)
    C#条件编译,发布多平台和多种选择性的项目
    控制台当前行显示进度条,不换行
    对"使用Mono Runtime Bundle制作安装包让C#桌面应用程序脱离net framework"增加说明
    ASP.NET Core文章汇总
    jquery.tmpl 用法(附上详细案例)
    Pure扩展站--个人博客
    使用@media做自适应
    简单的计划任务实现。。。
  • 原文地址:https://www.cnblogs.com/Lara1798/p/12958105.html
Copyright © 2011-2022 走看看