2023-07-25|閱讀時間 ‧ 約 3 分鐘

【筆記】Selenium 實作:網頁彈窗處理跟自動登入

    繼上一篇我們開啟到網頁時出現彈跳視窗需要進行處理,同時我們會接著後面的運作,讓網頁自動登入網站。

    【筆記】Selenium 實作:讓你的網頁自動幫你開啟網站

    在上一篇的最後,我們遇到了彈窗,仔細看會發現,這個是由瀏覽器推出來的:

    左上角有Chrome的字樣

    因此,可以透過直接禁用Chrome通知功能,讓這個彈窗不要出現,我們這時候需要導入Options來控制瀏覽器的選項類:

    #導入Options
    from selenium.webdriver.chrome.options import Options

    Options它可以用來控制瀏覽器做各種設定,像是:

    • 禁用通知:disable-notifications,禁用瀏覽器的通知,我們這次所需的就是這個功能。
    • 啟用無頭模式:headless,啟用無頭模式,運作自動化時瀏覽器不會出現,在後台運行。


    接著,我們需要創建一個Options的物件,並且讓它啟用禁止通知:

    #創建一個Chrome options的物件​
    chrome_options = Options()
    #在物件中添加禁用瀏覽器通知的功能
    chrome_options.add_argument("--disable-notifications")

    再把我們設定好的Options放在chrome driver裡面:

    #把禁用通知放在driver裡面
    driver = webdriver.Chrome(options=chrome_options)

    至於會需要寫成options=chrome_options的原因是,options是webdriver.Chrome裡的參數,我們定義了一個禁用瀏覽器通知的chrome_options需傳遞到options

    結果如下:

    彈窗消失了,接下來我們要讓瀏覽器點擊「登入」,一樣打開瀏覽器開發者模式抓對應的元素,同時我們也事先人工點登入抓一下登入時所需的帳號密碼欄位:

    #找到登入按鈕,並且點擊 
    login_button = driver.find_element(By.CLASS_NAME, "btn-login")
    login_button.click()

    #帳號,帳號請自行註冊自定義
    search_box = driver.find_element(By.NAME,"email")
    search_box.send_keys("********@gmail.com")

    #密碼,密碼請自行註冊自定義
    search_box = driver.find_element(By.NAME,"password")
    search_box.send_keys("********")

    #模擬鍵盤,點擊ENTER
    search_box.send_keys(Keys.ENTER)


    結果如下:

    帳號登入成功

    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.