我正在编写一个Python脚本,该脚本使用BeautifulSoup进行网页抓取,然后使用Selenium进行站点导航。使用链接上的.click()导航到另一个站点后,我想使用.current_url获取用于制作精美汤的站点URL。问题是.click()在新选项卡中打开链接,所以当我使用current_url时,会得到原始站点的URL。
我尝试使用:
second_driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)
更改选项卡,但对current_url函数没有影响,因此无效。
简化代码:
second_driver = webdriver.Firefox()
second_driver.get(<the original url>)
time.sleep(1)
second_driver.find_element_by_class_name(<html for button that opens new tab >).click()
time.sleep(1)
url=second_driver.current_url
因此,我希望单击后的URL成为新站点,而不是原始URL
谢谢,很抱歉,我显然是一个初学者。
答案 0 :(得分:0)
您需要切换到新标签。 webrdiver.window_handles是打开的选项卡/窗口的列表。该代码段将使您切换到第二个打开手柄。 如果要返回开始的位置,请使用[0]。如果要始终转到打开的最后一个选项卡,请使用[-1]。如果您尝试在window_handles [1]存在之前切换到它,则会引发IndexError。
webdriver.switch_to_window(webdriver.window_handles[1])