yamanekaito0702
@yamanekaito0702

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

指定URLを別ウィンドウ(別タブ)で表示するコードを書きたいです。

解決したいこと

指定URLを別ウィンドウ(別のタブ)で表示するコードを書きたいです。
mac、GoogleChrome上でGoogleColabを使ってコードを書いています。

下記のページでは、別のウィンドウで指定URLをひらけていると思うのですが
どうもうまくいきません。
https://ai-inter1.com/python-selenium/#st-toc-h-7
他のサイトも参考にコピペしながら、コードを書きました。

プログラミングは初心者なので、根本的な部分が抜けている部分があると思いますが
ご指導いただけると幸いです。

発生している問題・エラー

<ipython-input-11-45db6c542ab7>:18: DeprecationWarning: headless property is deprecated, instead use add_argument('--headless') or add_argument('--headless=new')
  options.headless = True
<ipython-input-11-45db6c542ab7>:20: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
  driver = webdriver.Chrome("/usr/bin/chromedriver", options=options)

該当するソースコード

%%shell
# Ubuntu no longer distributes chromium-browser outside of snap
#
# Proposed solution: https://askubuntu.com/questions/1204571/how-to-install-chromium-without-snap

# Add debian buster
cat > /etc/apt/sources.list.d/debian.list <<'EOF'
deb [arch=amd64 signed-by=/usr/share/keyrings/debian-buster.gpg] http://deb.debian.org/debian buster main
deb [arch=amd64 signed-by=/usr/share/keyrings/debian-buster-updates.gpg] http://deb.debian.org/debian buster-updates main
deb [arch=amd64 signed-by=/usr/share/keyrings/debian-security-buster.gpg] http://deb.debian.org/debian-security buster/updates main
EOF

# Add keys
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DCC9EFBF77E11517
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A

apt-key export 77E11517 | gpg --dearmour -o /usr/share/keyrings/debian-buster.gpg
apt-key export 22F3D138 | gpg --dearmour -o /usr/share/keyrings/debian-buster-updates.gpg
apt-key export E562B32A | gpg --dearmour -o /usr/share/keyrings/debian-security-buster.gpg

# Prefer debian repo for chromium* packages only
# Note the double-blank lines between entries
cat > /etc/apt/preferences.d/chromium.pref << 'EOF'
Package: *
Pin: release a=eoan
Pin-Priority: 500


Package: *
Pin: origin "deb.debian.org"
Pin-Priority: 300


Package: chromium*
Pin: origin "deb.debian.org"
Pin-Priority: 700
EOF

# Install chromium and chromium-driver
apt-get update
apt-get install chromium chromium-driver

# Install selenium
pip install selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options

# 出力先フォルダ
filepath = "drive/MyDrive"
# ターゲットURL

# Chrome Driverにセットするオプションの設定。
options = Options()
#options.add_argument("--headless") # or use pyvirtualdiplay
options.add_argument("--no-sandbox") # needed, because colab runs as root

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--new-window")


options.headless = True
# Webドライバーをセット
driver = webdriver.Chrome("/usr/bin/chromedriver", options=options)


# リンクを開く
driver.get('https://www.google.co.jp')
0

1Answer

driver.execute_script("window.open()")

を使用すれば別ウィンドウを開くことができます

それから

driver.switch_to.window(driver.window_handles[1])

を使い新しいウィンドウに切り替えます

[コード]

import os
import sys
from selenium import webdriver

# File Name
FILENAME = os.path.join(os.path.dirname(os.path.abspath(__file__)), "screen1.png")

# ChoromeDriver
driver = webdriver.Chrome()

# 新しいウィンドウを作成
driver.execute_script("window.open()")

# 新しいウィンドウに切り替え
driver.switch_to.window(driver.window_handles[1])

# URLアクセス
driver.get('https://qiita.com/')

# スクリーンショット取得
driver.save_screenshot(FILENAME)

# ブラウザを閉じる
driver.close
driver.quit
0Like

Your answer might help someone💌