処理は10行くらい、コメント(適当なので間違ってるかもしれない)を60行くらいつけまくったので大体わかるはず
一瞬にして閉じられるため、閉じたくないなら最後のdriver.quit()を消せばいいです
#これを動かすには、pip install seleniumでseleniumをインストールしていること #geckodriver.exeをダウンロードし、ソースと同じディレクトリ、またはパスが通ったフォルダ(C:\Users\ユーザー名\AppData\Local\Programs\Python\Python36-32\Scripts とか)に入れておくこと from selenium import webdriver #メインAPI from selenium.webdriver.common.keys import Keys #キー入力 from selenium.webdriver.common.by import By #左のコードをByに略 from selenium.webdriver.support import expected_conditions as EC #左のコードをECに略(下記APIの仲間?) from selenium.webdriver.support.ui import WebDriverWait #左のコードをWebDriverWaitに略(確実な待ちを実現) #初期設定 driver=webdriver.Firefox() #firefoxを開く&インスタンスをゲット driver.get("https://how-to-use.firebaseapp.com/") #URLをゲット wait=WebDriverWait(driver,10) #最大待ち時間インスタンス #ゲット(クリッカブルwait) elem=wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "オマケ"))) #「オマケ」リンク ''' ★wait.until(EC.~((A,B)))で「A,Bで指定した要素が」「~の状態になったら」ってコード ここでDOMで表示されるやつとかに待機できる(詳しいやり方は英語だからまだよくわからん) ★~の種類例 element_to_be_clickable ・・・A,Bで指定した要素がクリッカブルになったら alert_is_present ・・・アラートが出たら? invisibility_of_element_located ・・・A,Bで指定した要素がinvisibleまたはDOMで表示されてないなら ★A,Bの種類(A,Bでない指定の仕方もある) By.LINK_TEXT, "リンクされた文字" ・・・リンクされたテクスト ■これを見つける elem=driver.find_element_by_link_text("リンクの文字列") ■ をそれぞれ見つける elem=driver.find_element_by_id("passwd-id") elem=driver.find_element_by_name("passwd") elem=driver.find_element_by_xpath("//input[@id='passwd-id']") ■他 elem=driver.find_element_by_css_selector("セレクタ名") #「.なんとか、 p#なんとか」みたいな elem=find_element_by_partial_link_text elem=find_element_by_tag_name elem=find_element_by_class_name ■何も見つからない場合 NoSuch ElementExceptionが返る ''' #ゲットした要素にアクション elem.click() ''' ■マウス操作 elem.click() ・・・左クリック ■キー操作 elem.send_keys("文字列") ・・・キー入力 elem.send_keys(Kyes.RETURN) ・・・エンター elem.clear() ・・・入力削除 ''' #その他アクション driver.save_screenshot("a.png") #スクリーンショット ''' ■例 driver.save_sreenshot("ファイル名") ・・・スクリーンショット ''' #終了処理 driver.quit()
コメント