单击按钮后切换到打开的新浏览器 [Python][Selenium]

Posted

技术标签:

【中文标题】单击按钮后切换到打开的新浏览器 [Python][Selenium]【英文标题】:Switch to new browser opened after click on a button [Python][Selenium] 【发布时间】:2015-03-30 02:56:25 【问题描述】:

我有一种情况,我单击了一个打开新浏览器窗口的按钮。有什么方法可以连接到新打开的窗口?并使用它,然后返回到原始浏览器(第一个窗口)。

谢谢。

在网上进行了一番彻底的调查后,我设法让一些代码正常工作

Currentwindow = driver.window_handles
Likebutton = driver.find_element_by_css_selector(".single_like_button .btn3").click()
newwindow = driver.window_handles
newwindow = list(set(newwindow) - set(Currentwindow))[0]
driver.switch_to.window(newwindow)
driver.find_element_by_id("watch-like").click()
driver.implicitly_wait(5)
driver.close()

问题是命令driver.implicitly_wait(5) 由于某种原因不起作用,页面自动关闭,这不是我想要的。 如何让它工作?

【问题讨论】:

【参考方案1】:
driver.switch_to.window(handle)

将焦点切换到指定窗口。 handle 可以是名称或窗口句柄。

你可以使用

driver.window_handles

查找窗口句柄列表。

还有一些你可能会觉得有用的功能:

driver.switch_to.active_element     
driver.switch_to.default_content    
driver.switch_to.parent_frame   
driver.switch_to.alert 
driver.switch_to.frame 
driver.switch_to.window

【讨论】:

更新了另一个问题【参考方案2】:

对你来说太晚了,但也许这会对某人有所帮助

driver.implicitly_wait(5)

这个命令等待,当页面加载或 5 秒。 如果它将在 1 秒内加载,则

driver.close() 

1 秒后运行。 如果它在 7 秒内加载,那么

driver.close() 

5 秒后运行

你可以使用

import time

time.sleep(5)

反正会等5秒

【讨论】:

以上是关于单击按钮后切换到打开的新浏览器 [Python][Selenium]的主要内容,如果未能解决你的问题,请参考以下文章

如何直接在网页中打开文件 不出现下载保存提示框!

单击按钮后使用 Selenium 切换到新窗口

使用 BeautifulSoup Python 单击按钮后获取价值

如何在页面加载后启动 Bootstrap 切换按钮,如果打开则不调用回调

单击按钮后如何切换到另一个 XML 布局?

切换到链接打开的新浏览器窗口