【Selenium】別タブで複数ページを全て開く/Python
- Python -
2020.09.29
Python/Seleniumでwebdriver.get(URL)をしてWebページへアクセスし、そこで収集したURLを以下のように新しい別タブで一気に開きたい。
こんな時はwebdriver.execute_script()でJavaScriptのwindow.open()を実行することで上手くできます。
Python × Selenium 複数ページを全て新しい別タブで開く
以下、3つのページをdriver.get(URL)した時に開いたウィンドウの別タブで開く例です。
Pythonfrom selenium import webdriver
import chromedriver_binary
driver = webdriver.Chrome()
driver.get('https://google.com')
# 以下、driver.get先でfind_elementして収集したURLと仮定
urls = [
'https://google.com',
'https://google.com',
'https://google.com',
]
for url in urls:
driver.execute_script("window.open(arguments[0], '_blank')", url)
最終15行目の'_blank'がポイント。
最初は'_blank'ではなく'newtab'にしていて、2つめのタブしか新規に開かず上手くいきませんでした。