調べても調べても検索に引っ掛からなかった、Chrome拡張機能を自動でインストールする方法がわかったので、ここに記載する。Teratailありがとう。
必要なもの
- Python
 - Selenium
 - chromedriver_binary
 - win32com
 
ソース
「楽天検索」の拡張機能をChromeにインストールするコードを示す。ソースがはみ出してしまっているのはすみません。
import time
from time import sleep
# selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
# ないと起動しない
import chromedriver_binary
import selenium.webdriver.support.expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
import ctypes
import win32com.client
def getOptions():
    options = webdriver.ChromeOptions()
    options.add_argument( '--user-data-dir=' + 'UserData' )
    options.add_argument( '--profile-directory='+ 'Default' )
    return options
def installRakutenSearch():
    # 初回起動、楽天検索拡張機能をインストール
    driver = webdriver.Chrome( options=getOptions() )
    driver.get(r'https://chrome.google.com/webstore/detail/%E6%A5%BD%E5%A4%A9%E3%82%A6%E3%82%A7%E3%83%96%E6%A4%9C%E7%B4%A2/iihkglbebihpaflfihhkfmpabjgdpnol?hl=ja')
    WebDriverWait(driver, 15).until( EC.element_to_be_clickable( (By.XPATH, '//div[@class="g-c-Hf"]') ) )
    driver.find_element_by_xpath( '//div[@class="g-c-Hf"]' ).click() # Chromeに追加 ボタンクリック
    html = driver.page_source
    handle = ctypes.windll.user32.FindWindowW( "Chrome_WidgetWin_1",0)
    ctypes.windll.user32.SetForegroundWindow(handle)
    Shell = win32com.client.Dispatch("WScript.Shell")
    # うまくいかないときは、range(2)からrange(3)へ変更。調整してください。
    for i in range(2):
        Shell.SendKeys("{TAB}") 
        sleep (1)
    Shell.SendKeys("~") 
    time.sleep(5)
    driver.close()
    driver.quit()
if __name__ == '__main__':
    installRakutenSearch()
0 件のコメント:
コメントを投稿