如题,当我使用selenium操作打开一个新的选项卡的时候(如下图),无法从当前所处的页面定位到新的页面上(如下图,打开了新的页面,但再次发起请求时只能在百度的页面上跳转到淘宝页面)
from selenium import webdriver
import time
browser=webdriver.Chrome()
browser.get('https://www.baidu.com')
browser.execute_script('window.open()')
browser.get('https://www.taobao.com')
解决方案:使用switch_to_window
方法,定位到新打开的页面,而新打开的页面的地址为window_handles[1]
修改后代码如下:
from selenium import webdriver
import time
browser=webdriver.Chrome()
browser.get('https://www.baidu.com')
#打开一个新页面
browser.execute_script('window.open()')
#定位到新的页面
browser.switch_to_window(browser.window_handles[1])
browser.get('https://www.taobao.com')
time.sleep(1)
#定位回原来的页面
browser.switch_to_window(browser.window_handles[0])
browser.get('https://python.org')
根据代码可发现,先定位到新的页面,并跳转到淘宝。然后定位回原先的页面,并从百度跳转到python官网