首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Selenium for Python上由.click()打开的新选项卡上使用driver.current_url

如何在Selenium for Python上由.click()打开的新选项卡上使用driver.current_url
EN

Stack Overflow用户
提问于 2019-07-18 19:09:39
回答 1查看 527关注 0票数 0

我正在编写一个python脚本,它使用BeautifulSoup来进行web抓取,然后使用Selenium来导航站点。在使用链接上的.click()导航到另一个站点后,我想使用.current_url来获取站点url,以用于制作漂亮的汤。问题是.click()会在一个新的选项卡中打开链接,所以当我使用current_url时,我会得到原始站点的url。

我尝试使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
second_driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)

来更改制表符,但它对current_url函数没有影响,所以它不起作用。

简化代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

谢谢你,如果很明显我是个初学者,我很抱歉。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-18 20:26:24

您需要切换到新的选项卡。webrdiver.window_handles是打开的选项卡/窗口的列表。这段代码将切换到第二个打开的句柄。如果您想返回到开始的位置,请使用。如果您希望始终转到最后打开的选项卡,请使用-1。如果您试图在window_handles1存在之前切换到它,您将引发一个IndexError。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
webdriver.switch_to_window(webdriver.window_handles[1])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57101222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文