以前ブラウザの自動化でiMacrosを使っていたときは、たくさんのタブを開いて一気に処理をするロジックでコードを書いていました。
その発想のままPythonに移行したら、あれっ?新しいタブを開くのはどうするんだろう?
調べてみると、標準ではそのようなコードは無いとのこと。
しかし、ちょっとした組み合わせで開けることが分かりました。
新しいタブを開くにはどう書けばいい?
ChromeDriverでJavaScriptを実行する「driver.execute_script()」に「window.open();」と記述すると開きます。
from selenium import webdriver
driver = webdriver.Chrome(【chromedriver.exeのパス】)
#空のタブを開く
driver.execute_script("window.open();")
# URLを指定して、新しいタブを開く
driver.execute_script("window.open('https://〇〇');")
タブを閉じるには?
ChromeDriverに対して「close()」を使います。
「quit()」にすると、全てのタブを閉じ、ブラウザを終了します。
from selenium import webdriver
driver = webdriver.Chrome(【chromedriver.exeのパス】)
#空のタブを開く
driver.execute_script("window.open();")
# タブを閉じる
driver.close()
まとめ
Python+Seleniumで新しいタブを開くには、ChromeDriverに対して「execute_script()」と「window.open();」を組み合わせて使います。
逆に、閉じる場合は「close()」と「quit()」を使います。
実は、これをきっかけに、そもそもたくさんタブを開かないロジックを考えるようになりました。成長したと言って良いでしょうか?(笑)