前提・実現したいこと
python seleniumのコードがjupyter notebookからは動くのに、pyファイルをコマンドプロンプトから動かすとエラーがでます!
「select_element = Select(elements)」のコードが引っかかっているようです。
jupyter notebookで問題なく動いています。
「select_element = Select(elements)」の前に「sleep(10)」を入れましたが同様のエラーになりました。
分かる方すみませんがよろしくお願いします。
発生している問題・エラーメッセージ
DevTools listening on ws://127.0.0.1:55256/devtools/browser/e8723e00-05bb-4944-860b-6540761c0a30
[1215/002306.529:ERROR:command_buffer_proxy_impl.cc(124)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
Traceback (most recent call last):
File "C:\Users\tani\exe\next-engine.py", line 34, in <module>
select_element = Select(elements)
NameError: name 'Select' is not defined
該当のソースコード
from selenium import webdriver
#from selenium.common.exceptions import NoSuchElementException
from time import sleep
#from selenium.webdriver.support.ui import Select
import datetime
driver = webdriver.Chrome("chromedriver.exe")
driver.get('https://base.***.org/users/sign_in/')
elem_username = driver.find_element_by_id('user_login_code')
elem_username.send_keys('******')
elem_password = driver.find_element_by_id('user_password')
elem_password.send_keys('******')
driver.find_element_by_name('commit').click()
driver.find_element_by_xpath('//*[@id="footer-app-launcher"]/div/div/div[2]/div/ul/li[8]').click()
driver.implicitly_wait(10)
driver.switch_to.window(window_name=driver.window_handles[1])
#カレントウインドウのサイズを幅:1100,高さ:1000に設定する
driver.set_window_size(1100,1000)
sleep(2)
driver.find_element_by_link_text('ダウンロード・アップロード').click()
sleep(2)
driver.find_element_by_link_text('ダウンロード・アップロード').click()
sleep(2)
driver.find_element_by_link_text('FM入力データ').click()
#driver.find_element_by_name('where[4].type').click()
#driver.find_element_by_xpath('//*[@id="download_add_output_info"]/table[5]/tbody/tr[2]/td/div[2]/select/option[8]')
#セレクトの中から'指定の期間を含む'を選択する
elements = driver.find_element_by_xpath('//*[@id="download_add_output_info"]/table[5]/tbody/tr[2]/td/div[2]/select')
select_element = Select(elements)
select_element.select_by_visible_text('指定の期間を含む')
#日付入力1
elem_dd = driver.find_element_by_name('where[4].value1')
moziretu = datetime.datetime.now().strftime('%Y/%m/%d')
elem_dd.send_keys(moziretu)
#日付入力2
elem_dd = driver.find_element_by_name('where[4].value2')
moziretu = datetime.datetime.now().strftime('%Y/%m/%d')
elem_dd.send_keys(moziretu)
#ダウンロードボタン
driver.find_element_by_id('download_button').click()
#print(driver.page_source)
#ダウンロードを開始します
import pyautogui as pg
sleep(3)
pg.click(x=350, y=530, button='left') #直接ボタン位置を指定してクリック
試したこと
試しに簡単なコード↓を書いたpyファイルは正常に動きました。
print("exe化テスト!")
input("画面を閉じるにはEnterを押してください。")
補足情報(FW/ツールのバージョンなど)
Python 3.7.3
Windows7
jupyter notebook
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
check解決した方法
0
自己解決しました!
「#from selenium.webdriver.support.ui import Select」コメントアウトしていました。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
NameError: name 'Select' is not defined
タイプミスですね。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.20%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる