我爱编程

selenium 登陆网易云音乐

2018-04-03  本文已影响343人  两分与桥
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import sys
sys.path.append(r'C:\Users\libai\Documents') #导入账号,密码
from tests import *
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://music.163.com")

#用QQ登陆登陆
def login():
    driver.find_element_by_css_selector(".m-tophead.f-pr.j-tflag > a").click()
    #css 选择器中如果一个 tag 的 class 包含空格,要用.号代替空格
    driver.find_element_by_css_selector(".lyct.lyct-1 > div > div.u-alt > ul > li:nth-child(2) > a").click()

    print(driver.title)
    music_handle = driver.current_window_handle
    print(music_handle) # 输出当前窗口句柄 
    handles = driver.window_handles   # 获取当前全部窗口句柄集合

    #切换到QQ登陆页面
    for handle in handles:
        if handle != driver.current_window_handle:
            print('switch to qq login window')
            driver.switch_to_window(handle)

    print(driver.title)
    driver.switch_to.frame("ptlogin_iframe")
    driver.find_element_by_css_selector("#switcher_plogin").click()
    driver.find_element_by_css_selector("#u").clear()
    driver.find_element_by_css_selector("#u").send_keys(account)
    driver.find_element_by_css_selector("#p").clear()
    driver.find_element_by_css_selector("#p").send_keys(password)
    driver.find_element_by_css_selector("#login_button").click()
    #QQ 登陆后登陆页面会自动关闭
    #再次切换当前窗口
    driver.switch_to_window(music_handle)
    print(driver.title)

def close_window():
    driver.close()

def play_music():
    driver.switch_to.frame("g_iframe")

    driver.find_element_by_css_selector("#personalRec > ul > li:nth-child(1) > a > span.mask.f-alpha").click()
    print("time sleep")
    print(driver.current_url)
    time.sleep(10)
    print(driver.title)
#登陆之后的页面操作出现一些问题,没有去解决,
#但是前面登陆都是可以用的


def main():
    login()
    print(driver.current_window_handle)

    play_music()
    print(driver.current_url)
    time.sleep(20)
    close_window()


if __name__ == "__main__":
    main()
上一篇 下一篇

猜你喜欢

热点阅读