当前位置: 首页 > 知识库问答 >
问题:

关注Selenium Webdriver和Python中的新窗口

白学
2023-03-14

使用Python中的Selenium Webdriver,我可以点击一个按钮打开一个新的浏览器窗口,但是我不知道如何将焦点转移到新窗口上。我在网上搜了个遍,没找到什么有用的。问题是窗口没有标题!

我需要的是新窗口的焦点,这样我就可以截图它的内容。

以下是打开新窗口的按钮周围的代码:

怎么做…?

共有2个答案

元望
2023-03-14

这在Python中对我有用:

another_window = list(set(driver.window_handles) - {driver.current_window_handle})[0]
driver.switch_to.window(another_window);
淳于飞鸾
2023-03-14

您需要使用。switchTo(windowHandle)命令访问第二个窗口。

在打开第二个窗口之前-获取打开窗口的windows句柄:

String mainWindow = driver.getWindowHandle();

然后执行打开第二个窗口的操作。现在你需要知道第二个窗口的句柄并切换控制到它:

Set<string> handles = driver.getWindowHandles();  
    for (String handle : handles) {
        if (!handler.equals(mainWindow)) {
            driver.switchTo(handle);
            break;
    }
}

您对第二个窗口的操作现在将发生在第二个窗口中。当您完成后,需要再次与第一个窗口交互时:< code>driver.switchTo()。default content();

 类似资料:
  • 本文向大家介绍vuejs中监听窗口关闭和窗口刷新事件的方法,包括了vuejs中监听窗口关闭和窗口刷新事件的方法的使用技巧和注意事项,需要的朋友参考一下 1、使用window.onunload之类的API 2、在生命周期钩子中注册监听事件 在 mounted 钩子中注册事件 在 destroyed 钩子卸载事件 以上这篇vuejs中监听窗口关闭和窗口刷新事件的方法就是小编分享给大家的全部内容了,希望

  • 我有一个窗口窗体,包含两个列表视图(例如,命名为a和b)和一个按钮。当两个列表视图之间有焦点时,按钮的功能应该是以不同的方式显示消息框。 所以按钮的代码是 然而,当我在“b”列表视图中选择该项时。它总是返回MessageBox。节目(b)。当我重新开始并在“a”列表视图中选择一个项目时,它会给我一个空引用异常。 代码有什么问题吗?

  • 新窗口打开链接 该方法可以新起webview打开页面,由于客户端窗口过多会占用较多内存,请谨慎使用 Tida.pushWindow("http://www.tmall.com/go/chn/common/u-award.php?disableptf=1"); 关闭窗口 关闭当前webview窗口 Tida.popWindow();

  • 问题内容: 我想知道如何编写一个Java程序,该程序知道哪个Windows应用程序是重点。我可以打开许多窗口,但是我想知道正在使用的窗口(例如,当我输入此内容时,现在是Google Chrome)。 我不需要更改窗口或应用程序中的任何内容,只需要知道其名称即可。 问题答案: 恐怕没有Java API。JVM对它无法管理的窗口一无所知。您可能必须使用JNI并调用此函数 MSDN链接 PS。如果需要获

  • 我在Ubuntu14.04中从事Selenium和Firefox的工作,我通过send_keys(Keys)创建了一个新的选项卡。CONTROL 't '),但是一直在第一个选项卡上发出命令,可能是因为我没有正确地关注新选项卡。 运行此代码时没有错误。 去google.com后,我创建了一个新标签,屏幕在新标签上变成了一个空白页。之后,我编写了driver . switch _ to _ wind

  • 我正在使用Python进行selenium自动化项目。 我面临一个问题,这是处理多个浏览器窗口。 场景如下所示。当我单击主页上的链接时,将打开一个新窗口。在新打开的窗口中,我无法执行任何操作,因为焦点仍然在主页web驱动程序上。 谁能告诉我如何将焦点从背景窗口转换到新打开的窗口? 一种可能的解决方案是,但它需要窗口的名称。如何找出窗口的名字?如果这是一个错误的方法,谁能给出一些代码例子来执行这个操