首页 > 解决方案 > 如何在 selenium python 中获取新打开的选项卡的链接和页面信息

问题描述

我试图抓取这个网站。我遵循的过程是搜索用户单击第一个用户并获取有关他/她的信息。单击用户后,它正在打开一个新选项卡,那么我如何才能在新打开的选项卡中获取信息。

这是我搜索用户并单击的第一页 这是我点击每个用户时得到的第二页

到目前为止我写的代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait

driver = webdriver.Chrome('C:/Users/XXX/chromewebdriver/chromedriver.exe')
driver.get('https://www.tracksellers.com/')

search = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='desktop-seller-search']")))

search.click()

word = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='d-seller-autocomplete']")))

word.send_keys('james')

searchdiv = word = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='d-seller-autocomplete-box']")))

searchresult = searchdiv.find_element_by_id('list')
searchresult = searchresult.find_elements_by_tag_name('li')

searchresult[0].click()

# the above code search's for a user and click on the first user 

# next steps i tried
driver.window_handles

# gives me the below output
['CDwindow-70F83E4DCEB9D746B96FD9D965FC1BF7',
 'CDwindow-87428C4E8AF3614CFE2C461A0B3AE765']

# trying to get the current tab by using this code, but it gives only the first tab
driver.current_window_handle

# output
'CDwindow-70F83E4DCEB9D746B96FD9D965FC1BF7'

我如何从一个选项卡切换到另一个选项卡并访问标签和其他内容。

标签: pythonseleniumweb-scraping

解决方案


它在一个新选项卡中,因此您需要将驱动程序焦点切换到新打开的选项卡:

driver.switch_to.window(driver.window_handles[1])

您需要在单击第一页后立即编写此代码。


推荐阅读