• 締切済み

Python。Seleniumの動作。

個人的に仕事などで使えるプログラムツールを作りたいと思い、現在Pythonを勉強しています。 が、スタンパーみたいなソフトや、ログインなどの動作をしてくれるとか、自動でプルダウンをランダムに選択してくれるようなワンボタンのソフト等を作りたくてGUI前提で考えていたのですが、そもそもPythonをGUIにするのは重いからあまりしないと後で知りました。 色々調べたり聞いたりすると、そういう目的ならPythonがいいんじゃないかみたいに言われたりもしたのですが… SeleniumならWEBの自動操作が出来るということで色々弄っていたのですが、確かに操作は少し出来るようになってきましたが、あまりにも動作がアナログ的というか… 表示されていない要素は指定できないとか、WEBページの読み込みが間に合わないと動作がバグるとか。 個人的にはプログラムというのはもっと『このボタンを押せとコードを書いたらボタンを確実に押して進行してくれる』ものだと思っていたのですが。 こういうものなのでしょうか? それともSeleniumが実際に人が操作する動作をしっかり守ったものなのでしょうか。 これが例えば他の言語でコードを組んだ場合も、同じような動作になってしまうのでしょうか。

みんなの回答

  • wormhole
  • ベストアンサー率28% (1619/5653)
回答No.2

>個人的にはプログラムというのはもっと『このボタンを押せとコードを書いたらボタンを確実に押して進行してくれる』ものだと思っていたのですが。 はい、そういうものです。 ただし指示相手が人間ならボタンがまだ表示されていなかった場合は「ボタン表示されていないから、表示されるまで待とう」という判断をしてくれるでしょうが、 プログラムはそんな事はしてくれません。 プログラムは、あなたがコードに書いたことを書かれたとおりに実行するだけで、 あなたが思ったことを実行してくれるわけではありません。

全文を見る
すると、全ての回答が全文表示されます。
  • Proof4
  • ベストアンサー率78% (151/192)
回答No.1

端的な回答としては「こういうもの」ということになります。 人間は「指定されたボタンを確実に押す」という操作を容易に行うことができますが、少なくともSeleniumの場合はその背景で何気なく行なわれている、「ページが読み込まれるまで待つ」や「ボタンの存在を認識して押す」といった動作をすべて教えてあげる必要があります。 また、Seleniumはブラウザでの表示や操作が仕様通りに行えるかのテストにも用いられています。 したがって、表示されていない要素はむしろ操作できてはいけません。そういう意味ではある程度人間の操作に即した動作になります。 一方で、任意のCSSを適用したりJavaScriptを実行できるので人間よりも容易にハック的な操作ができます。 他の言語でSeleniumを利用した場合でも動作は同じになります。RPAツールなどを利用すると使用感が変わると思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • プログラムは必ずしもGUIが必要ではない?

    Python、JavaScriptを勉強し始めたのですが、Pythonではtkinterを使ってGUIを作れる!みたいなことを学び始めた段階で色々疑問に思ってきました。 『PythonでGUIってそもそもどうなの?』という言葉を見かけたのですが、自分はそもそもプログラムを組んでスマホアプリやパソコン上で使う便利ツール、自動操作系やデータ解析、等々作りたいなと思っていました。 GUIありきというか。 このボタンを押したら処理開始!とか。 条件をプルダウンで選択して…とか。 そういう所謂ソフト系を作りたくて独学で勉強始めたのですが、プログラムとはそういうものだという認識がまずありました。 でも必ずしもそういうわけではないのでしょうか? そもそもPythonで組んだコードをexe化するのもてこずっているのですが、ネット上を探しても完全に解決している情報が少なそうな予感がしています。 ⇒そこまでEXE化に拘る人が少ないのか?という疑問も。 他の人はGUIを必ずしも必要としないのでしょうか?というかそっちの方が一般的で、私みたいにGUIありきで考えているのがどちらかというとイレギュラーなのでしょうか?

  • Python? PsychoPy?

    以前、どのプログラムをやればいいかというような質問をさせていただいたものです。 その時の皆様のご回答により、早速Pythonをやろう!と意気揚揚だったのですが・・・。早速路頭に迷っております。 Pythonを検索しているときにPsychoPyというものを見つけました。心理学実験に使用するプログラムがさらりと組めるようになりたいということが目標なので、こんなソフトウェアがあったのか!と嬉しかったのですが、Pythonとは別物?みたいです。 Pythonの心理学実験用みたいな感覚だったのですが、まったく違うのですか?GUIというか、視覚的に操作できて、プログラムって感じからは程遠いです。Presentationのように、視覚的な操作ではだめになったときに、コードを書くようなプログラミングが登場するのですか? この2つの違いを、(サルでもわかるように)詳しく教えていただけますでしょうか。 どっちをやるべきか・・・

  • pythonでエラー「out of memory」

    python seleniumでエラー「out of memory」の解決策を教えてほしいです。 python seleniumでブラウザの自動操作を行っています。 一覧の画面にボタンがあり、For文で繰り返し画面遷移を行っています。 処理が進むにつれてメモリがどんどん増え、最終的にメモリ不足で処理が停止してしまいます。 tracemallocでメモリの容量を見たところ 下記の2つが処理が進むにつれてメモリどんどん増えています。 C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\urllib\parse.py:387: size=27.0 KiB, count=257, average=108 B C:\Users\xxx\AppData\Local\Programs\Python\Python311\Lib\urllib\parse.py:411: size=25.5 KiB, count=256, average=102 B ファイルの内容としてはurlが関係しているのかなと考えています。 parse.py:387⇒splitresult = urlsplit(url, scheme, allow_fragments) parse.py:411⇒return url[start:delim], url[delim:] parse.pyはシステムファイル?のためどのようにメモリの解放を行えばよいのか調査しましたが解決策が思い浮かびませんでした。 途中でメモリの解放等を行う方法がありますでしょうか?

  • python3.3についての質問です

    python3.3についてお聞きいたします。 「すべてのプログラム」-「Python3.3」-「IDLE(Python GUI)」を立ち上げて、 a=[5,6,7] a[0] と入力し「Enter」で、結果が「5」と正常に表示されます。 「IDLE」の一番上の欄の「File」-「New Window」の画面で上記と同じプログラムを入力し、「File」-「Save」で保存してから、「Run」-「Run Module F5」で実行させますと、 >>> ===========RESTART========== >>> >>> と表示されるだけです。 なぜ「5」と表示出来ないんでしょうか。 同じプログラムをメモ帳で書いて、文字コードを「UTF-8」で保存して、走らせても結果は何も表示しません。 なぜなんでしょうか。ご教授お願いいたします。

  • pythonのファイルの作り方

    やっ質問と、pythonをインストールできました。 次にpythonのファイルをつくろうとしています。 Webで以下の様な資料を見つけました。 資料:たとえば、「c:\work\ai」のようなフォルダを作成します。 とあるのですが 質問:フォルダは、デスクトップ上に「新規作成」で作ればいいのですか。 資料:つぎに、作成したフォルダにプログラムを記載するためのファイルを作成します。 とあるのですが 質問:このファイルの作り方がわかりません。 pythonの画面上で、コードを作成するのですか。 作り方を、教えてください。 宜しくお願いいたします。  

  • ■Seleniumを知っている方・・・ テスト自動化プログラムの選定。困りました。。■

    困っています。。どなたかご教授下さい。 JavaでWebアプリケーションを会社でつくっておりまして、 初めてのテスト自動化を試みております。 チェック対象としては、フォーム入力値のデータチェック、遷移先画面チェックです。 さらにチェック結果としてブラウザ画面のエビデンスを自動取得してくれるフレームワーク?を探しております。(無料) 今現在は Selenium で何ができるか色々情報収集中なのですが、なんだか難しいです・・・・ 初心者技術者でもサッサッっとテストプログラムを作れる便利なものご存知ないでしょうか? また、Selenium を使った事のあるかたの参考にしたサイト、書籍などの情報も頂けると非常に助かります。 どうかお願い致します。

  • python3.2で外部プログラムを実行&操作

    民安TALKという音声読み上げソフトを実行&操作するプログラムがあります。これをpythonで書いてみようと思ったのですが、どうすればいいのかがわかりません。 <環境など> 民安TALK(ソース) http://uep.s321.xrea.com/src/index.html OS:Windows7 version:python3.2 <具体的にどうしたいのか> テキストを入力し、再生ボタンを押すとテキストを読みあげるプログラム(.exe)に対し、そのプログラムがまだ起動していなかったら起動して、テキストを入力し、再生ボタンを押すということをやりたいです。ちなみに再生ボタンにはショートカットキーは設定されてません。 現在、プログラムを起動するところで詰まっています from subprocess import Popen p = Popen("絶対path") とすると外部プログラム(.exe)を実行できると思うのですが、これだと設定ファイルの読み込みに失敗してしまいます。pythonからではなく、コマンドプロンプトでカレントディレクトリをその外部プログラムのあるディレクトリに移動しプログラム名.exeとすれば実行できます。

  • Pythonにおける実行ファイル作成につきまして

    はじめまして。お世話になります。 当方、プログラミングを始めての初心者ですので、 低レベルな質問等ございましたら何卒ご容赦下さい。 掲題の件なのですが、Pythonでコードを記述した際、作成ファイルを実行する際は逐次 コマンドプロンプトから実行命令を出す必要があるのでしょうか。 例えばwindowsデスクトップにショートカットがあるように、作成したソフトをダブルクリックで 簡単に実行出来るようにすることは可能でしょうか。 私が購入した書籍が3冊等ございますが、それらはみなcmdからファイルを操作していました。 結論としまして、”エディタで記述したPythonファイルをGUI形式で利用・(起動等の操作を)可能にしたい”ということは可能なのでしょうか。 また非常に低レベルな質問で大変申し訳無いのですが、エディタはEmEditor(フリー版)を 使っており、こちらのエディタで、とあるwindowが表示されるコードを記述しても、 コードで意図したwindowは表示されず、ファイルが開き、エディタの編集モードに入ってしまいました。 (原理はなんとなく理解できます。”エクセルファイルをダブルクリックしたらエクセルファイルが開き、編集可能状態になった”と同内容のことと把握しています) 自分としては、ファイルをダブルクリックしたあと、”今このエディタでかいたコードが実行されてほしいのに・・・”と少し凹みます。。。(低レベルですみません) 長くなってしまい、大変申し訳御座いません。 cmd.exe無しで、Pythonで書かれたスクリプト実行方法をご存知の方いらっしゃいましたら、 何卒ご教示頂けますでしょうか。 よろしくお願いします。

  • pythonでエクセルにコピペできない

    pythonでWebページにログインし、レポートを全選択して エクセルにペーストしたいのですが、エクセルにペーストできないです。 どのように修正したら良いのでしょうか? よろしくお願いします。 【確認したこと】 1.エクセルは更新履歴が変わっているので、開いて保存はしている。 2.プログラム終了後、手動でエクセルを開いてctrl+vするとコピーした値をペーストできる。(クリップボードにはコピーされている) 3.新規エクセルで試してもペーストできない。 import time import chromedriver_binary import pyautogui import openpyxl from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome import service wb = openpyxl.load_workbook("./BOS_Data.xlsx") #WEBブラウザの起動 driver = webdriver.Chrome() #自動ログインしたいウェブサイトのURLをコピペ driver.get('https://xxx/Login/default.asp') USER = 'o2' PASS = 'M3' my_id = driver.find_element(By.NAME, 'sUserName') password = driver.find_element(By.NAME, 'sPassword') submit_btn = driver.find_element(By.NAME, 'submit') #自動入力したIDとパスワードを入力 my_id.send_keys(USER) password.send_keys(PASS) #ログインボタンを自動入力 submit_btn.click() #Reportをクリック driver.find_element(By.XPATH, '/xxxxxxxx).click() #全選択して、コピー pyautogui.hotkey('ctrl', 'a') pyautogui.hotkey('ctrl', 'c') #すでに存在するExcelワークブックを読み込み、ペーストして保存 wb = openpyxl.load_workbook("./BOS_Data.xlsx") ws = wb['Sheet1'] wc = ws['A1'] pyautogui.hotkey('ctrl', 'v') time.sleep(3) wb.save("./BOS_Data.xlsx")

  • C#のプログラムに関して

    GUIアプリケーションをC#で作りたいと考えていて、いずれはIoTなんかを組み込めないかと考えているのですが、C#で作ったアプリケーションでpythonプログラムの結果を表示させたり利用したりできるのでしょうか。 どのようにアプローチすれば実現できるのか(C#のプログラムでの受け取り方)を教えていただけないでしょうか。 よろしくお願いします。 ※なぜC#なのか・・pythonは動作が遅いからC#の方がメリットを感じたためです。

このQ&Aのポイント
  • 両面コピーをしていたら、ガラガラ音がなり、添付写真の表示が画面に出て、何度も電源入れ直ししても、警告音の様な音がして同様の画面になる。購入して1か月し経っていないのに、この様なトラブルは非常に困る。
  • お使いの環境はWindows/Mac OSで、無線LANで接続されています。
  • 関連するソフト・アプリは特にありません。
回答を見る

専門家に質問してみよう