前提・実現したいこと
ブラウザ画面にSVG画像を表示させたあとに、ターミナルからコマンドを叩いてブラウザ画面のSVG画像内にある要素(circle, rect, etc...)の操作(移動、削除, etc...)を行いたいです。
というのも、webサービスのAPIをユーザに提供したいと考えています。
前提事項
- 使用ケース: 同ユーザが同PC上で、自分の操作を自動化するためにブラウザをターミナルから操作する
- アプリケーションの想定ユーザ: PCの操作、プログラミングに熟達しているエンジニア
- ブラウザ:chrome
- PC: Mac
- アプリケーションのフレームワーク: フロントエンド React, バックエンド Flask(Python)
検討したこと
いくつか検討しましたが、個人的には案3(selenium)がもっとも現実的なのかと考えています。 もし同じ意見でも他の意見でもコメントいただけますと幸いです。
- 案1: http通信によって、webサーバからブラウザにリクエストを送る. <- そもそもブラウザからwebサーバへという方向にしかリクエストは送れないため実現不可. ブラウザ内にサーバをたてて、http通信ができるようにする?
- 案2: webアプリではなくデスクトップアプリに変更して、サーバを起動できるようにする <- 案1同様、実現できるか不明. 既存サービス例としてはslackなどが該当するかも?
- 案3: seleniumによる操作. 環境構築の手間などを考えると、ユーザーに優しくないためもっと手軽な構成にしたい
- 案4: 外部サーバのfile downloadを定期的に実行しておき、外部サーバのfileに操作コマンドを記載していく <- dropboxというファイル共有サービスが画面を更新する方法か?(推測) PCの負荷が高くなってしまうかもしれない
補足
「webサービスのAPIをユーザに提供したい」と「ターミナルからコマンドを叩いてブラウザの表示を変更したい」の繋がりが見えてこないのですが、どういう状況なのでしょうか?
アプリケーションの例としては、ダッシュボード作成ツール(power bi, tableau)を想定していただけると近いです。(そのような描画アプリを4月から開発していて、一年くらいかけて作ってみるつもりです。) とくにこのようなアプリの使いにくさはスケールの難しさにあると思っています。 というのも、手作業での作業が必須であり1枚の成果物を作るためには1人の作業者を1日中張り付かせる必要があります。 同じような成果物を10枚だとしてもプログラマの工数を10人日使わないといけないため、フロントエンドの開発状況はナンセンスな状況だと感じています。
そこで、その手作業を自動化するために作業をGUIベースではなくCUIベースで実行できたら良いのではないかと考えました。 しかし、調査するにともないブラウザを操作するのは一般的ではないと感じ、力添えをいただきたく質問いたしました。
ブラウザからサーバに送信してサーバ側で処理をして、それをブラウザに返せばよいのでは。
私個人のアプリ開発方針として、以下のように考えています。
"エンジニア、プログラマが使うソースコードのエディタや実行ツールは少ない方が良い"
---> よって、プログラムができる新しいインターフェースの提供を避けたい
---> よって、ターミナルやIDEからブラウザ(なんらか描画できるもの)へアクセスができるものが良い
回答4件
あなたの回答
tips
プレビュー