質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.39%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

App Store

App Storeは、Apple社が運営する、iPhone、iPod touch、iPad向けアプリケーションソフトのダウンロードサービスです。携帯電話、Wi-Fiによる無線通信に対応しており、多くのアプリケーションをダウンロード、インストールすることができます。世界中の開発者によってアプリケーションが登録されており、有償のソフトもあればフリーソフトも多く登録されています。

Q&A

解決済

1回答

268閲覧

Macでseleniumを起動し終わっても、アイコンが消えない

kannnna

総合スコア7

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

App Store

App Storeは、Apple社が運営する、iPhone、iPod touch、iPad向けアプリケーションソフトのダウンロードサービスです。携帯電話、Wi-Fiによる無線通信に対応しており、多くのアプリケーションをダウンロード、インストールすることができます。世界中の開発者によってアプリケーションが登録されており、有償のソフトもあればフリーソフトも多く登録されています。

0グッド

0クリップ

投稿2024/06/24 23:17

実現したいこと

この挙動で問題ないか、アイコンを消す方法を知りたいです。

発生している問題・分からないこと

Macでseleniumにてスクレイピング後、
driver.quit()
で終了するのですが、画像のように下部のアイコンだけがいつも残ってしまいます。
イメージ説明

普段はWindowsなので、そもそも残っていてもいいのか、
消す必要がある場合は、どのようなコードを使えばいいのか、
ご教示くださいますと幸いです。

(手動で消すのが面倒なので、残っていても問題ない場合にも、消したいです。)

該当のソースコード

機種名: MacBook Pro 機種ID: MacBookPro9,2 プロセッサ名: Dual-Core Intel Core i5 システムのバージョン: macOS 10.15.7(catalina) (非常に古いMacを使用していて、バージョンアップはこれが限界です)

python

1from selenium import webdriver 2from selenium.webdriver.common.by import By 3from selenium.webdriver.support.wait import WebDriverWait 4from selenium.webdriver.chrome.options import Options 5from selenium.webdriver.chrome.service import Service 6from webdriver_manager.chrome import ChromeDriverManager 7from selenium.webdriver.support import expected_conditions as EC 8# driver生成 9options = Options() 10options.add_argument('--headless') 11driver = webdriver.Chrome(service=Service(executable_path=ChromeDriverManager().install()), options=options) 12wait = WebDriverWait(driver, 60) 13# 新しいタブを作成する 14driver.execute_script("window.open()") 15# 新しいタブに切り替える 16driver.switch_to.window(driver.window_handles[1]) 17 18# アクセス 19driver.get('https://www...') 20# 全てのコンテンツが読み込まれるまで待機 21wait.until(EC.presence_of_all_elements_located) 22232425driver.quit() 26

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

・検索ワードが上手くないのか、見つかりませんでした。
・今は手動で消してます。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Macは持ってませんが、「Mac Dock」で検索してみると、MacOS10.14以降では「最近使ったアプリケーションをDockに表示」というオプションがDockの設定に追加されているようなので、起動する度に無限にアイコンが増えていくのでなく上限3個程度で止まるなら、この機能によるものでしょうから、オプションをオフにすれば(Chrome以外も含めて)追加されなくなると思います。以下それが前提で続けます。

手動でChromeを起動すると、chromeのメインプロセスは引数無しで起動されますが(Windowsでの状況ですが、Macでも同じでしょう)、ChromeDriverから起動されるchromeはメインプロセスでも引数満載なので、おそらくそれぞれ別プログラムと解釈されているのでしょうね。
「同じプログラムかどうかの判断時に、引数を一切無視する」とか「他のプログラムから間接的に起動されたプログラムはDockerに追加しない」的な選択がOS側で出来れば追加されないかも知れませんが。またchromedriverはDockに追加されてないようなので、GUIプログラムだけが対象ですかね。

あと、おそらく質問の事象に影響してないとは思いますが、プログラムを見ると、ChromeDriverManagerを使って自分でChromeDriverをダウンロードしてその場所をSeleniumに伝えるという2年以上前のコードです。
(Selenium4.2以降はそういう機能はSelenium本体に統合されています)
OSが古いせいで最新のSeleniumが動かないのならしょうがないですが、可能ならSeleniumを最新化して、プログラムもそれに合わせて書き換えておくのが良いと思います。

投稿2024/06/25 22:43

otn

総合スコア85645

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kannnna

2024/06/25 23:02

設定の変更で消えました!ありがとうございます!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.39%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問