Focus Protractor / Webdriver浏览器测试窗口

时间:2013-11-26 14:07:32

标签: angularjs selenium webdriver selenium-webdriver protractor

我正在尝试在测试开始时关注Protractor / Webdriver浏览器测试窗口。通过焦点我的意思是测试窗口应该位于屏幕上显示的其他窗口的顶部,现在它出现在其他窗口下面。

使用Selenium chromedriver并从WebStorm启动Protractor。

我在场景规范的开头尝试了以下操作,但它没有任何效果:

browser.driver.switchTo().defaultContent();
browser.driver.switchTo().window(browser.driver.getWindowHandle());
browser.switchTo().window(browser.getWindowHandle());
browser.driver.executeScript('window.focus();')

2 个答案:

答案 0 :(得分:1)

这不是Webdriver可以做的事情,因为它只控制你的测试窗口,而不是你操作系统的窗口管理器。但是,有一个Chrome标志可以解决这个问题:

capabilities: {
    'browserName': 'chrome',
    'chromeOptions': {
        'args': ['--start-maximized']
    }
}

这属于您的protractor.conf.js文件。

只要Chrome窗口打开,它就会最大化。在我的系统上,这就把它放在了前面。您的里程可能会有所不同。

答案 1 :(得分:1)

您可能希望在启动浏览器后使用conf.js中的onPrepare来截取屏幕截图。这使窗口成为焦点。

<!DOCTYPE html>
<html>
<body>

<p>Close this window, press F5 or click on the link below to invoke the onbeforeunload event.</p>

<a href="http://www.w3schools.com">Click here to go to w3schools.com</a>
      
<script>

  window.onbeforeunload = confirmExit;
  function confirmExit(){
    alert("confirm exit is being called");
    return false;
  }
</script>

</body>
</html>