パケットギフト自動取得したい
driver.find_element_by_name("nablarch_form1_1").click()
ここでエラー、一回だけログイン通ったけど次から通らない エラー後コマンドで打つとログイン通るんだけどなんで?
from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.support.ui import WebDriverWait from bs4 import BeautifulSoup options = Options() # ヘッドレスモードを有効にする(次の行をコメントアウトすると画面が表示される)。 # options.add_argument('--headless') # ChromeのWebDriverオブジェクトを作成する。 driver = webdriver.Chrome(chrome_options=options) mineo_id = 'xxxxx' mineo_pass = 'xxxxx' # ブラウザ操作 driver.get("http://mineo.jp/") driver.find_element_by_xpath( "//nav[@id='small_top-navigation']/div/div[2]/a[2]").click() # 別ウインドウに切替 WebDriverWait(driver, 3).until(lambda d: len(d.window_handles) > 1) driver.switch_to.window(driver.window_handles[1]) driver.find_element_by_id("eoID").clear() driver.find_element_by_id("eoID").send_keys(mineo_id) driver.find_element_by_name("form.loginPassword").clear() driver.find_element_by_name("form.loginPassword").send_keys(mineo_pass) driver.find_element_by_name("nablarch_form1_1").click() while True: html = driver.page_source soup = BeautifulSoup(html, 'html.parser') temp = soup.select_one( '#boxData > div.detailArea > div.boxPacketGift01 > dl > dd > div.top > div > p.detail' ).get_text(strip=True).rstrip('MB') packet = int(temp.replace(',', '')) if packet > 9: gift_packet = 999 if packet > 9990 else packet // 10 packet -= gift_packet * 10 print(gift_packet, packet) driver.find_element_by_id( "GCC010301GCC010301_Init_packetGiftYoryo").clear() driver.find_element_by_id( "GCC010301GCC010301_Init_packetGiftYoryo").send_keys( str(gift_packet)) driver.find_element_by_id( "GCC010301GCC010301_Init_GCC010301GCC010301_SendGift").click() driver.find_element_by_id( "GUG010101GUG010101_Init_GUG010101BtnNext_Submit").click() driver.find_element_by_id( "GUG010201GUG010201_Init_GUG010201BtnTop_Submit").click() else: break driver.quit()