selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot set properties of null (setting 'value') (Session info: headless chrome=95.0.4638.54)
解決したいこと
いままで 動いていたコードが1ヶ月前?くらいから動かなくなってしまいました。
seleniumを使ったものです。
また動くように改善したいです。
発生している問題・エラー
% docker exec selenium python3 mail_de_point.py
Traceback (most recent call last):
File "mail_de_point.py", line 68, in <module>
main()
File "mail_de_point.py", line 65, in main
Operation('https://member.pointmail.rakuten.co.jp/box', user_name, user_passwd)
File "mail_de_point.py", line 21, in Operation
driver.execute_script('document.getElementById("loginInner_u").value="%s";' %user_name)
File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 872, in execute_script
return self.execute(command, {
File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 418, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/errorhandler.py", line 243, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot set properties of null (setting 'value')
(Session info: headless chrome=95.0.4638.54)
Stacktrace:
#0 0x55e377916ac3 <unknown>
#1 0x55e3773f08f8 <unknown>
#2 0x55e3773f377c <unknown>
#3 0x55e3773f3576 <unknown>
#4 0x55e3773f4132 <unknown>
#5 0x55e377457993 <unknown>
#6 0x55e377443b02 <unknown>
#7 0x55e377456ca1 <unknown>
#8 0x55e3774439f3 <unknown>
#9 0x55e377419e14 <unknown>
#10 0x55e37741ae05 <unknown>
#11 0x55e37794825e <unknown>
#12 0x55e37795dafa <unknown>
#13 0x55e3779491b5 <unknown>
#14 0x55e37795f4c8 <unknown>
#15 0x55e37793d95b <unknown>
#16 0x55e37797a298 <unknown>
#17 0x55e37797a418 <unknown>
#18 0x55e377995bed <unknown>
#19 0x7fd3f0233609 <unknown>
または、問題・エラーが起きている画像をここにドラッグアンドドロップ
該当するソースコード
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
import chromedriver_binary
import time
user_name = ''
user_passwd = ''
def Operation(url, user_name, user_passwd):
op = Options()
op.add_argument("--no-sandbox")
op.add_argument('--headless')
op.add_argument('--disable-dev-shm-usage')
op.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=op)
driver.get(url)
driver.implicitly_wait(100)
# driver.find_element_by_id('loginInner_u').send_keys(user_name)
driver.execute_script('document.getElementById("loginInner_u").value="%s";' %user_name)
# driver.find_element_by_id('loginInner_p').send_keys(user_passwd)
driver.execute_script('document.getElementById("loginInner_p").value="%s";' %user_passwd)
driver.find_element_by_class_name('loginButton').click()
driver.implicitly_wait(100)
driver.find_element_by_class_name('notRead').click()
driver.implicitly_wait(20)
add = 0
while len(driver.find_elements_by_xpath('//div[@class="listCont"]/a')) > add:
if driver.find_elements_by_xpath('//div[@class="listCont"]/a')[add].get_attribute('target') == '':
try:
driver.implicitly_wait(20)
driver.find_elements_by_xpath('//div[@class="listCont"]/a')[add].click()
except:
driver.implicitly_wait(20)
driver.find_elements_by_xpath('//div[@class="listCont"]/a')[add].click()
driver.implicitly_wait(20)
try:
driver.implicitly_wait(20)
driver.find_element_by_class_name('point_url').click()
except:
try:
driver.implicitly_wait(20)
driver.find_element_by_id('mailFrame').click()
except:
pass
time.sleep(5)
try:
driver.switch_to.window(driver.window_handles[1])
driver.close()
driver.switch_to.window(driver.window_handles[0])
time.sleep(5)
except:
pass
driver.back()
time.sleep(5)
else:
add += 1
print('finish!')
driver.quit()
def main():
Operation('https://member.pointmail.rakuten.co.jp/box', user_name, user_passwd)
if __name__ == '__main__':
main()
自分で試したこと
"Message: javascript error: Cannot set properties of null (setting 'value')"で検索したりしているのですが、はっきりしたことがわかっていません。
どなたかお教えいただけたら幸いです。