【问题标题】:Bring the Firefox Browser to Front using selenium Java (Mac OSX)使用 selenium Java (Mac OSX) 将 Firefox 浏览器置于最前面
【发布时间】:2013-10-03 19:47:08
【问题描述】:

我正在使用三个火狐驱动程序实例进行自动化。我需要将当前活动的火狐浏览器放在前面,因为我正在使用一些机器人类进行一些操作。我曾在 mac 中尝试过 google chrome 的 java 脚本警报(相同的操作),它工作正常。在 windows 中使用 user32 lib。在 firefox mac 的情况下,它在后台显示警报,但网页没有出现在前面。

((JavascriptExecutor)this.webDriver).executeScript("alert('Test')");
this.webDriver.switchTo().alert().accept();

我在 Mac 中用于 chrome 的上述代码。相同的代码正在运行并显示 Firefox 警报,但窗口没有出现在前面。

如果有其他方法可以在 Firefox 中做同样的事情,请提出建议。

【问题讨论】:

  • 谢谢!我有这个完全相同的问题 for chrome!下面的 Firefox 答案似乎不起作用,执行 window.focus() 似乎不起作用,但是您显示警报然后接受它的技巧确实有效。非常有用!

标签: java firefox selenium-webdriver


【解决方案1】:

首先将窗口句柄存储在一个变量中,然后使用它稍后返回窗口。

//Store the current window handle
String currentWindowHandle = this.webDriver.getWindowHandle();

//run your javascript and alert code
((JavascriptExecutor)this.webDriver).executeScript("alert('Test')"); 
this.webDriver.switchTo().alert().accept();

//Switch back to to the window using the handle saved earlier
this.webDriver.switchTo().window(currentWindowHandle);

另外,您可以在切换到窗口后尝试最大化它,这也应该激活它。

this.webDriver.manage().window().maximize();

【讨论】:

  • 这实际上是一个很棒的工作,最近帮了我很多。谢谢。
【解决方案2】:

尝试使用窗口名称进行切换:

driver.switchTo().window("windowName");

或者,您可以将“窗口句柄”传递给switchTo().window() 方法。知道了这一点,就可以像这样遍历每个打开的窗口:

for (String handle : driver.getWindowHandles()) {
  driver.switchTo().window(handle);
}

基于 Selenium 文档:http://docs.seleniumhq.org/docs/03_webdriver.jsp

【讨论】:

  • 感谢您的回复,但是我发现也不起作用,我已经尝试切换到窗口
【解决方案3】:

如其他主题中所述,您可以使用

 driver.manage().window().setPosition(new Point(-2000, 0));

也是。

【讨论】:

    【解决方案4】:
    # notifications for selenium
    chrome_options = webdriver.ChromeOptions()
    prefs = {"profile.default_content_setting_values.notifications": 2}
    chrome_options.add_experimental_option("prefs", prefs)
    current_path = os.getcwd()  # current working path
    chrome_path = os.path.join(current_path, 'chromedriver')
    browser = webdriver.Chrome(executable_path=chrome_path, chrome_options=chrome_options)
    browser.switch_to.window(browser.current_window_handle)
    browser.implicitly_wait(30)
    browser.maximize_window()
    browser.get("http://facebook.com")
    

    【讨论】:

      【解决方案5】:

      只有在 mac 上对我有用的东西:self.driver.fullscreen_window()

      【讨论】:

        猜你喜欢
        • 2018-09-24
        • 1970-01-01
        • 2019-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-08
        相关资源
        最近更新 更多