我正在编写一个python脚本,它使用BeautifulSoup来进行web抓取,然后使用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
谢谢你,如果很明显我是个初学者,我很抱歉。
发布于 2019-07-18 20:26:24
您需要切换到新的选项卡。webrdiver.window_handles是打开的选项卡/窗口的列表。这段代码将切换到第二个打开的句柄。如果您想返回到开始的位置,请使用。如果您希望始终转到最后打开的选项卡,请使用-1。如果您试图在window_handles1存在之前切换到它,您将引发一个IndexError。
webdriver.switch_to_window(webdriver.window_handles[1])
https://stackoverflow.com/questions/57101222
复制相似问题