当前位置: 首页 > 面试题库 >

Windows处理会关闭整个浏览器,如果我尝试在python中关闭当前窗口

杨骏
2023-03-14
问题内容

我目前正在使用窗口处理功能在新窗口中打开地图方向,打开后我将关闭子窗口,该子窗口已打开并在代码中进行重命名工作,但它正在关闭整个浏览器,同时调试了正常工作,但是在运行代码时,出现错误,

错误- selenium.common.exceptions.NoSuchWindowException: Message: no such window: target window already closed

我已经附上了代码,

   ##Clicking on The Map Image
            self.driver.find_element_by_xpath("/html[1]/body[1]/div[1]/div[2]/div[1]/section[1]/div[1]/div[1]/div[2]/div[1]/a[1]/img[1]").click()
            ##Setting up an Window Handle to get the size.
            handels =self.driver.window_handles
            size = len(handels)
            """
            The Below For Loop, We are using For Handling The Mutilple Windows,
            Which are opened in the Browser.
            """

            for length in range(size):
                driver.switch_to.window(handels[length])
                print(self.driver.title)
                time.sleep(3)
                if length == 1:
                    driver.close()

我做错的地方我不知道。请把我整理一下。


问题答案:

尝试使用此代码关闭新窗口并切换回主窗口

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Get current window
current = self.driver.current_window_handle
# Get current windows
handles = self.driver.window_handles
# Click button. Consider to use more reliable relative XPath instead of this absolute XPath
self.driver.find_element_by_xpath("/html[1]/body[1]/div[1]/div[2]/div[1]/section[1]/div[1]/div[1]/div[2]/div[1]/a[1]/img[1]").click()
# Wait for new window
WebDriverWait(self.driver, 10).until(EC.new_window_is_opened(handles))
# Switch to new window
self.driver.switch_to.window([w for w in self.driver.window_handles if w != current][0])
# Close new window
self.driver.close()
# Switch back to main window
self.driver.switch_to.window(current)


 类似资料:
  • 问题内容: 我想在网页上创建一个链接,该链接将关闭浏览器中当前活动的选项卡,而不关闭浏览器中的其他选项卡。 当用户单击关闭链接时,将出现一条警告消息,要求用户使用两个按钮“是”和“否”进行确认。如果用户单击“是”,则关闭该页面,如果“否”,则不执行任何操作。 怎么做到呢?有什么建议么? 问题答案: 您将需要Javascript来执行此操作。用途: 注意: 隐含当前选项卡。这等效于: 或者您可以指定

  • 问题内容: 如何关闭当前的浏览器标签?以下无效。 要么 要么 问题答案: 试试这个: 来源:https : //vaadin.com/forum/#!/ thread/ 235330

  • 我做了一个jsf应用程序。这个应用程序有一个包含开始、停止按钮的菜单。当按下开始时,应用程序开始从网站获取数据,并更新其数据库。应用程序还有更新过程的进度条。但是,这个过程需要很长时间才能完成。我希望当我关闭浏览器时,它应该继续更新数据库。此外,当我再次打开它时,我应该得到以前的状态。然而,这并没有发生。当我关闭浏览器时,应用程序也关闭了。我该怎么办? 谢谢。

  • 问题内容: 我尝试了许多方法来通过jQuery或JavaScript检测浏览器关闭事件。但是,不幸的是,我无法检测到关闭。该和方法也没有工作。 如何检测的窗口,或事件? 问题答案: 您是否尝试过此代码? 第二个功能是可选的,以避免在单击和元素时提示。

  • 问题内容: 我尝试使用以下代码在关闭浏览器窗口时收到警报: 它可以工作,但是如果页面包含一个超链接,则单击该超链接会引发相同的警报。仅在关闭浏览器窗口时才需要显示警报,而在单击超链接时则不需要。 问题答案: 保持您的代码不变,并使用jQuery处理链接:

  • 我试图创建一个类,该类将有一个接一个地测试超文本传输协议代理的方法,直到我有一个工作的代理,我可以添加到一个selenium网络驱动程序实例中。 我有一个原始输入来验证代理是否在webdriver中工作,如果它不工作,它应该测试另一个代理并请求我确认,然后关闭驱动程序或保持打开状态。(我删除了使用测试方法的if语句,因为我得到了一个错误) 当我在终端中输入“n”时,当我被要求确认时,它会关闭浏览器