В вашем первом driver.execute_script()
он запустит браузер с окном по умолчанию, а затем перейдет к указанному URL-адресу в другом окне, так что у вас будет всего 2 окна, и вы делаете driver.switch_to_window()
, чтобы переключиться на второеокно, и это нормально.
Когда дело доходит до второго driver.execute_script()
, у вас будет два предыдущих окна вместе с новым, так что всего у вас будет 3 окна.Если вы выполните driver.window_handles[1]
снова, вы получите тот же источник страницы, поэтому, чтобы избежать этого, вам нужно изменить индексный номер на 2.
Попробуйте следующий код:
driver = webdriver.Chrome()
url = 'first URL'
driver.execute_script('''window.open("'''+str(url)+'''","_blank");''')
driver.switch_to_window(driver.window_handles[1])
time.sleep(3)
doc1 = html.fromstring(driver.page_source)
url = 'second URL'
driver.execute_script('''window.open("'''+str(url)+'''","_blank");''')
driver.switch_to_window(driver.window_handles[2])
time.sleep(3)
doc2 = html.fromstring(driver.page_source)
Чтобы узнать больше о работе с JavaScriptExecutor, обратитесь к Эта ссылка
Надеюсь, это поможет ...