标签:use ons 地方 user class def The import max
此例中值得注意的地方是frame的切换,切换到某个frame可以用 browser.switch_to.frame(‘frame_name‘) 返回上一级可以用 browser.switch_to.parent_frame()
全部代码如下:
from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By import time class Music163: def __init__(self): url = ‘https://music.163.com‘ options = webdriver.ChromeOptions() options.add_argument(‘--headless‘) self.browser = webdriver.Chrome(executable_path=‘D:\\Program Files (x86)\\chromedriver.exe‘, chrome_options=options) self.browser.maximize_window() self.browser.get(url=url) self.wait = WebDriverWait(self.browser, 10) def login(self, username, password): self.browser.switch_to.frame(‘contentFrame‘) self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ‘#index-enter-default‘))).click() self.browser.switch_to.parent_frame() self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ‘#otherbtn‘))).click() self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ‘#j-official-terms‘))).click() self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ‘.u-btn2-2‘))).click() self.wait.until(EC.presence_of_element_located((By.ID, ‘p‘))).send_keys(username) self.wait.until(EC.presence_of_element_located((By.ID, ‘pw‘))).send_keys(password) self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ‘.u-btn2-2‘))).click() time.sleep(3) def sign_in(self): self.browser.switch_to.frame(‘contentFrame‘) self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ‘.btnwrap>a‘))).click() def __del__(self): self.browser.close() if __name__ == ‘__main__‘: m = Music163() m.login(‘username‘, ‘password‘) m.sign_in()
标签:use ons 地方 user class def The import max
原文地址:https://www.cnblogs.com/pau1fang/p/13198943.html