【问题标题】:Bring browser from back to front? (Selenium Web Driver, Java)将浏览器从后到前? (Selenium Web 驱动程序,Java)
【发布时间】:2012-01-16 07:57:51
【问题描述】:

有什么办法可以将浏览器从后面带到顶部(前面)?

情况是有两个浏览器,firefox和chrome。所以,我实例化了两个驱动,new FirefoxDriver() 和 new ChromeDriver(),我们称它们为 fdriver 和 cdriver。

我想要的是当程序使用 Firefox 时,firefox 浏览器应该在顶部。 Chrome 也是如此。但是,当他们在后面时,我被困在如何将浏览器带到顶部。

我已经试过了,

Javascript:self.focus() 和 window.focus()。 /WebDriverBackedSelenium 使驱动程序返回到 selenium 并使用 windowMaximize 和 windowFocus

任何想法都值得赞赏,谢谢

【问题讨论】:

    标签: java javascript selenium webdriver


    【解决方案1】:

    你应该能够做到这一点

    driver.SwitchTo().Window("//name of the window");
    

    这将使您想要的任何窗口成为焦点。

    【讨论】:

    • 我认为它只适用于来自同一驱动程序的两个窗口。它适用于两个不同的驱动程序吗?我通过这样做对其进行了测试: 1. new Firefoxdriver(); 2.新的InternetExplorerDriver(); 3. fdriver.switchTo().Window(fdriver.getWindowHandles().iterator().next());
    • 如果两个窗口都来自 fdriver,switchTo() 将起作用。如果我做错了,请纠正我。谢谢
    • @user836112 你是对的,它不会那样做。我认为处理这个问题的更好方法是查看 Selenium Grid 在多台机器上运行多个测试。这样你就可以为每个虚拟机实例化一个 WebDriver
    • 我能想到的是,在我实例化另一个驱动程序之前,只需让当前驱动程序退出即可。如果是这种情况,您可以确保可以将驱动程序放在前面。
    • 是的,如果您没有同时调用每个 on e 然后关闭或完全当前驱动程序并实例化下一个,这将确保驱动程序 (WebDriver) 不会对使用哪个驱动程序以及应该查看哪个页面或 DOM 感到困惑。
    【解决方案2】:

    现在我不使用 selenium,但我使用 Geb,它是 selenium 的包装器,因此调用 javascript 对您来说可能会有所不同,但这就是我的做法(应该类似)

    browser.js."alert()"
    webdriver.switchTo().alert().accept()
    

    我调用了 javascript alert 函数,该函数将窗口带到了前台,然后我用 webdriver.switchTo().alert().accept() 解除了警报。

    【讨论】:

      【解决方案3】:
      java.awt; 中的

      Robot 可以帮助您:

      Robot.mouseMove(webDriver.manage().window().getPosition().getX(),webDriver.manage().window().getPosition().getY());
      Robot.mousePress(InputEvent.BUTTON1_MASK);
      Robot.mouseRelease(InputEvent.BUTTON1_MASK);
      

      限制:

      • 如果您有多个显示器,则需要计算绝对坐标。由于 webDriver.manage().window().getPosition().getX() 为您提供当前使用的显示的偏移量。
      • 窗口应该是可见的

      【讨论】:

        猜你喜欢
        • 2015-10-02
        • 1970-01-01
        • 2018-04-02
        • 1970-01-01
        • 2016-05-20
        • 2019-12-14
        • 2019-02-22
        • 1970-01-01
        • 2013-01-09
        相关资源
        最近更新 更多