概要
以下の環境下でPython3で実行したSeleniumが動作しません。
原因と思われる箇所についてご助言頂けると助かります。
#動作環境
項目 | 値 |
---|---|
OS | CentOS7.6 |
Python | 3.6 |
google-chrome-stable | 73.0.3683.75 |
chromedriver | 73.0.3683.68 |
動かない実行ファイル
python
1# coding:utf-8 2from selenium import webdriver 3from selenium.webdriver.common.by import By 4from selenium.webdriver.support.ui import WebDriverWait 5from selenium.webdriver.support import expected_conditions as EC 6from selenium.webdriver.chrome.options import Options 7import time 8 9fqdn = "xxx.com" 10#メールアドレス 11mail = "xxx.@gmail.com" 12 13options = Options() 14options.add_argument('--headless') 15options.add_argument('--no-sandbox') 16options.add_argument('--disable-gpu') 17options.add_argument('--window-size=1280,1024') 18driver = webdriver.Chrome(chrome_options=options) 19#ログイン 20driver.get(fqdn) 21driver.find_element_by_id('username').send_keys("xxx") 22driver.find_element_by_id('password').send_keys("xxx") 23driver.find_element_by_class_name('btn').click() 24#登録 25driver.get(fqdn) 26driver.find_element_by_id('name').send_keys("test") 27driver.find_element_by_id('size').send_keys("100") 28driver.find_element_by_class_name('btn').click() 29#確認用 30#新規作成 31driver.execute_script("ToNewCreate('')") 32#管理者管理登録画面 33driver.find_element_by_id('loginid').send_keys("xxx") 34driver.find_element_by_id('lastname').send_keys("xxx") 35driver.find_element_by_id('firstname').send_keys("xxx") 36driver.find_element_by_id('mailaddress').send_keys(mail) 37driver.find_element_by_id('password').send_keys("xxx") 38driver.find_element_by_name('regist').click() 39#ID取得 40driver.find_element_by_link_text('idlist').click() 41current_url = driver.current_url 42uid = current_url.split(":",2) 43driver.get(fqdn + uid[1]) 44driver.find_element_by_id('username').send_keys("xxx") 45driver.find_element_by_id('password').send_keys("xxx") 46driver.find_element_by_class_name('btn').click() 47#管理画面 48driver.get(fqdn + uid[1]) 49#確認用 50##新規登録 51driver.execute_script("check()") 52driver.find_element_by_id('loginid').send_keys("xxx") 53driver.find_element_by_id('lastname').send_keys("xxx") 54driver.find_element_by_id('firstname').send_keys("xxx") 55driver.find_element_by_id('mailaddress').send_keys(mail) 56driver.find_element_by_id('password').send_keys("xxx") 57driver.find_element_by_name('regist').click() 58#以降なに書いても動かない 59driver.save_screenshot('test.png')
エラー内容
bash
1Traceback (most recent call last): 2 File "xxx.py", line 59, in <module> 3 driver.save_screenshot('test.png') 4 File "/usr/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 1055, in save_screenshot 5 return self.get_screenshot_as_file(filename) 6 File "/usr/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 1032, in get_screenshot_as_file 7 png = self.get_screenshot_as_png() 8 File "/usr/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 1064, in get_screenshot_as_png 9 return base64.b64decode(self.get_screenshot_as_base64().encode('ascii')) 10 File "/usr/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 1074, in get_screenshot_as_base64 11 return self.execute(Command.SCREENSHOT)['value'] 12 File "/usr/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute 13 self.error_handler.check_response(response) 14 File "/usr/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 241, in check_response 15 raise exception_class(message, screen, stacktrace, alert_text) 16selenium.common.exceptions.UnexpectedAlertPresentException: Alert Text: None 17Message: unexpected alert open: {Alert text : メールの送信に失敗しました。} 18 (Session info: headless chrome=73.0.3683.75) 19 (Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Linux 3.10.0-957.el7.x86_64 x86_64)
属性や値に関しては一部マスキングしているため、実際の値ではありませんが
57行目までのコードだけだと動作するため正常かと思われます。
試したこと
こちらを参照して、「明示的な待機」っぽい処理を57行目の属性に入れてみましたが
やはり57行目以降の処理は動作しませんでした。
57行目以降に「time.sleep(120)」を追加しましたがこちらも変わらず…。
当方Python,Seleniumともに現在あまり理解しておらず申し訳ないのですが、
上記に記載した「明示的な待機」について理解が及んでおりませんので(どの属性を指定しているかなど)
待機処理で解決するということでしたらそちらもご教示頂けると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/15 09:01