Выведите браузер Firefox на передний план с помощью selenium Java (Mac OSX)

Я использую три экземпляра драйвера fire fox для автоматизации.Мне нужно вывести текущий активный браузер firefox на передний план, потому что я использую некоторые классы robo для некоторых операций. Я пробовал Java script alert Для google chrome в mac (та же операция), и он работал нормально. В windows используется user32 lib. В случае firefox mac его отображение оповещения в фоновом режиме, но веб-страница не выходит на передний план.

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

приведенный выше код я использовал для chrome в Mac. Тот же код работает и показывает предупреждение для Firefox, но окно не выходит на передний план.

пожалуйста, предложите, если есть какой-либо другой способ сделать то же самое в firefox.

4 ответов


сначала сохраните дескриптор окна в переменной, а затем используйте его, чтобы вернуться к окну позже.

//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();

попробуйте переключиться, используя имя окна:

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

кроме того, вы можете передать "дескриптор окна" в switchTo().window() метод. Зная это, можно перебирать каждое открытое окно следующим образом:

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

на основе документации Selenium:http://docs.seleniumhq.org/docs/03_webdriver.jsp


как описано в других разделах, вы можете использовать

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

тоже.


# 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")