1
Help us understand the problem. What are the problem?

posted at

updated at

[ShimaBlock]Python&Seleniumで起動済みブラウザ(Chrome)に再接続して操作するサンプル

概要

ShimaBlock for Pythonの操作サンプルです。
Python、Seleniumを用いた、ブラウザ操作コードを生成します。

使用サイト:ShimaBlock for Python

ソースコード概要

起動したChromeを別のpyファイルから再接続して、ブラウザを操作します。

使用ファイル

chrome_open.py

ブラウザ(Chrome)を起動し、接続用URLとセッションIDをpickleファイルに格納します。

chrome_reconnect.py

pickleファイルから接続用URLとセッションIDを取得し、webdriver.Remoteで再接続します。
再接続したChromeのURLを変更します。

data.pickle

上記のpyファイル間のデータ連携用ファイルです。
「chrome_open.py」実行時に自動生成されます。

Chrome起動&接続設定保存(ブロック)

image.png

Chrome起動&接続設定保存(生成コード)

chrome_open.py
from selenium import webdriver
import pickle

driver = None
session_id = None
url = None


driver = webdriver.Chrome()
driver.get('https://shima-soft.com/')
session_id = driver.session_id
url = driver.command_executor._url
with open('data.pickle', 'wb') as f:
  pickle.dump(session_id, f)
  pickle.dump(url, f)

Chrome再接続&URL変更(ブロック)

image.png

Chrome再接続&URL変更(生成コード)

chrome_reconnect.py
import pickle
from selenium import webdriver
import time

session_id = None
url = None
driver = None


with open('data.pickle', 'rb') as f:
  session_id = pickle.load(f)
  url = pickle.load(f)
options = webdriver.ChromeOptions()
options.add_argument('--headless')
driver = webdriver.Remote(command_executor=url,options=options)
driver.close()
driver.quit()
driver.session_id = session_id
driver.get('https://shima-block.shima-soft.com/')
time.sleep(1)
driver.get('https://shima-soft.com/')
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
1
Help us understand the problem. What are the problem?