質問: お世話になります。 Seleniumでブラウザの自動操作プログラムを作成しています。 ブラウザ操作中、一部だけをプログラムで自動処理したいです。 たとえば、航空会社サイトでチケットの選択までは 自分でブラウザを操作したいが、その後の決済手続きはプログラムで自動化したい、等の運用を想定しています。 この様なとき、プログラムに操作中のウィンドウを制御させる良い方法はないでしょうか? プログラム上で起動したブラウザしかプログラムで処理できないのではと懸念してます... もし上記懸念が正のときは、代替案として 下記のような挙動ができても嬉しいです。 1.プログラムを実行してブラウザを起動する 2.何かしらの方法で実行中にユーザが操作できるようにする 3.何かしらの入力によってプログラムの続きの処理が実行される 説明不足の部分ありましたらご指摘ください。 よろしくお願いします!
回答: switch_to_windowを試してみてはどうでしょうか。 ``` from selenium import webdriver from selenium.webdriver.common.keys import Keys import pprint driver = webdriver.Chrome('pathtodriver') driver.get( 'https://www.yahoo.com' ) time.sleep(1) driver.find_element_by_name('p').send_keys('Selenium Python3') driver.find_element_by_name('p').send_keys(Keys.ENTER) time.sleep(1) driver.find_element_by_css_selector('#web > ol > li:nth-child(1) > div > div > h3 > a').click( ) pprint.pprint( driver.title ) driver.switch_to.window( driver.window_handles[1] ) # go next window pprint.pprint( driver.title ) driver.switch_to.window( driver.window_handles[0] ) # go back window pprint.pprint( driver.title ) ```