2011-07-10 7 views
20

Как можно свернуть браузер Selenium (например, Firefox)? Я хочу, чтобы команда browser.start(mySettings) начала свернутый браузер.Как можно свернуть браузер Selenium (например, Firefox)?

+0

http://stackoverflow.com/questions/3224518/how-to-close-or-minimize-browser-windows-with-selenium-rc –

+0

Для этой цели используются безглавые браузеры. –

ответ

2

Не зная своего мотива для сведения к минимуму браузера и при условии, что вы используете драйверы WebDriver (Selenium v2) и не хотите, чтобы пользовательский интерфейс всплывал, можно было использовать легкий браузер HtmlUnitDriver.

+0

HTMLUnitDriver хорошо работает на общих веб-страницах, но веб-страницы, закодированные в AJAX или тяжелые javascript, иногда работают очень плохо! – roosevelt

14

У меня есть альтернативное решение, которое может удовлетворить ваши потребности. Вы можете установить положение WebDriver вне своего вида. Таким образом, он будет скрываться из виду, пока он работает. (Это может начаться в видном месте, но это будет только там на мгновение.)

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

Это не будет работать, если ваш оконный менеджер предотвратит размещение окна вне экрана (что похоже на удивительный WM). Где это работает? – blueyed

+0

Я никогда не сталкивался с оконным менеджером. Я предполагаю, что это означает, что я использую оконный менеджер Selenium по умолчанию. – NoBrainer

+0

awesome WM - это диспетчер окон рабочего стола, и я использую его в Linux. Вы используете MacOS или Windows? – blueyed

6

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

Обычно, когда мы хотим запустить тестовые случаи с максимальным браузером мы используем driver.manage().window().maximize();

Без сомнения есть несколько способов минимизировать окно с помощью кода с помощью Java ключевое событие с помощью сочетания клавиш для minimimzing окна или с помощью JavaScriptExecuter, но это тоже зависит от того, какая ОС и язык вы работаете. более

Одна вещь, вы можете попробовать это HtmlUnitDriver .При использовании этого вы не можете даже увидеть браузер, так что может также служить вашей цели, если у вас есть случай, не открывая браузер во время выполнения тестов.

0

В php мы можем использовать команду JavaScript для минимизации окна браузера.

$this->selenium->getEval("Minimize();"); 

и аналогичные команды для Java:

browser.getEval("Minimize();"); 
+1

Разве это не требует глобальной функции «Свернуть» в браузере (у Firefox, похоже, нет).? – blueyed

+0

Кажется, что это действительно не работает на Firefox. ((IJavaScriptExecutor)) .ExecuteScript («Свернуть();»); – LeoPucciBr

3
Dimension windowMinSize = new Dimension(100,100); 
driver.manage().window().setSize(windowMinSize); 
-5
driver.manage().window().minimize(); 

Это должно помочь минимизировать окно. Вы также можете использовать «максимизировать» вместо «свернуть», чтобы максимизировать окно.

+6

Какой Selenium API это? Кажется, что существует только метод 'maximize', но ничего для минимизации (Selenium 2.42.1, Python API). – blueyed

+0

Я не нахожу никакого метода .minimize(), selenium поддерживает только .maximize(); –

-1

Вы можете использовать:

driver.manage().window().maximize(); 


For example code snippet with chrome driver: 
System.setProperty("webdriver.chrome.driver", "C://chromedriver.exe"); 
driver = new ChromeDriver(); 
baseUrl = "chrome://newtab/"; 
driver.manage().window().maximize().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

для Firefox использовать только "firefordriver.exe"

+1

Вопрос был: «Запустить Минимизированный», не максимально ... – kirsche40

+2

не отвечает на вопрос – ldevp

1

При использовании Python для перемещения браузера FireFox от экрана:

driver = webdriver.FireFox() 
driver.set_window_position(-2000,0) 
0

обходных путей, упомянутых в сообщение не работало для браузера NodeWebKit, поэтому в качестве обходного пути мне пришлось использовать собственный код C#, как указано ниже:

public static void MinimiseNWKBrowser(IWebDriver d) 
     { 
      var body = UICommon.GetElement(By.TagName("body"), d); 
      body.Click(); 
      string alt = "%"; 
      string space = " "; 
      string down = "{DOWN}"; 
      string enter = "{ENTER}"; 
      SendKeys.SendWait(alt + space); 
      for(var i = 1; i <= 5; i++) 
      { 
       SendKeys.SendWait(down); 
      } 
      SendKeys.SendWait(enter);    
     } 

Так этот способ в основном использует «ALT + SPACE», чтобы вызвать меню браузера действий, чтобы выбрать «УМЕНЬШИТЬ» из опций и нажатия «ENTER» драйвер

0

.set_window_position (2000,2000)

или

(х, у) значения больше, чем разрешение монитора

Позже, если и хотят, чтобы увидеть окно снова

driver.maximize_window()

0

Лучший способ минимизировать ваш браузер - использовать ярлык с помощью класса Robot.

Ярлык: Alt + Space + N (для ОС Windows)

Robot robot=new Robot(); 
    robot.keyPress(KeyEvent.VK_ALT); 
    robot.keyPress(KeyEvent.VK_SPACE); 
    robot.keyPress(KeyEvent.VK_N); 
    robot.keyRelease(KeyEvent.VK_ALT); 
    robot.keyRelease(KeyEvent.VK_SPACE); 
    robot.keyRelease(KeyEvent.VK_N); 

Используя выше кода вы можете минимизировать ваш браузер.

Смежные вопросы