【问题标题】:Unable to Maximize browser when running through Jenkins as windows service通过 Jenkins 作为 Windows 服务运行时无法最大化浏览器
【发布时间】:2016-10-09 12:20:36
【问题描述】:

通过 windows 运行测试脚本时,由于脚本失败,无法最大化浏览器窗口,

尝试了这个线程中提到的所有可能的方法,但没有用 Unable to Set Size (Increase Size) for Chrome Browser through Selenium in Jenkins?

有没有办法最大化窗口?任何帮助表示赞赏。提前致谢。

【问题讨论】:

  • 你控制“奴隶”吗?如果从属程序作为正常程序启动,您可以与桌面交互。
  • 不,我没有任何从属服务器,Jenkins 在我的本地主机 8080 服务器上运行。
  • 我也遇到了类似的问题,当我配置为在 Jenkins 上运行我的脚本时,由于 chrome 浏览器没有最大化,脚本会失败。但是,当我手动登录到 Jenkins 节点并执行我的脚本时,chrome 浏览器正在最大化。有人遇到过这个问题的解决方案吗?感谢帮助!

标签: java selenium jenkins


【解决方案1】:

我在TeamCity 上看到了同样的情况,因为它再次作为 Windows 服务运行(在虚拟桌面上)。在玩过 Firefox 配置文件之后,我们不得不使用全屏模式。示例代码如下(C#):

//Make Firefox fullscreen for TeamCity agent's runs
_driver.Manage().Window.Maximize();
((IJavaScriptExecutor)_driver).ExecuteScript(
"window.resizeTo(screen.width, screen.height)");
_driver.Manage().Window.Position = new Point(0, 0);
_driver.Manage().Window.Size = 
    new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
_driver.FindElement(By.CssSelector("body")).SendKeys(Keys.F11);
_driver.Navigate().GoToUrl("about:blank");

Chrome 也支持such workaround

【讨论】:

  • 您好,感谢您的回复,仍然无法获得完整尺寸,我需要复制您提供的所有代码吗?还是只有senkeys声明?你能给出Java代码吗?这将非常有帮助,因为我无法从您提供的上述陈述中找到 Position 方法。
  • 这是对我有用的完整解决方案(应该几乎与语言无关)。但是你可以只使用 JavaScriptExecutor 部分(JAVA 也支持)和_driver.FindElement(By.CssSelector("body")).SendKeys(Keys.F11); 作为shown here。这应该可以解决问题。
  • 使用了这个,当我截屏时仍然和以前一样:( System.setProperty("webdriver.chrome.driver","Used path for chrome driver"); driver = new ChromeDriver( ); driver.get("google.com/"); Thread.sleep(3000); driver.findElement(By.tagName("body")).sendKeys(Keys.F11);
  • 即使这样也可以工作 driver.get("google.com/"); Thread.sleep(3000); driver.manage().window().maximize(); ((JavascriptExecutor)driver)。 executeScript("window.resizeTo(screen.width, screen.height)"); driver.manage().window().setPosition(new Point(0, 0)); driver.manage().window().setSize (new Dimension(1500,1800)); driver.findElement(By.tagName("body")).sendKeys(Keys.F11); Thread.sleep(4000);
  • 即使这样也行,呵呵.. :( driver.get("google.com/"); driver.manage().window().maximize(); ((JavascriptExecutor)driver).executeScript ("window.resizeTo(screen.width, screen.height)"); driver.manage().window().setPosition(new Point(0, 0)); driver.manage().window().setSize( new(Dimension(1500,1800)); driver.findElement(By.tagName("body")).sendKeys(Keys.F11); Thread.sleep(4000);
【解决方案2】:

我在使用 Jenkins 运行自动化测试时遇到了类似的问题。这与交互式服务检测有关。

我似乎可以解决此问题的唯一方法是将 Jenkins 作为 Windows 服务删除,并使用 sciprt 从 CMD 运行它。

【讨论】:

  • 是的,我相信,我需要这样做。
  • 如果这对 Rahul 有帮助,如果它解决了您的问题,请务必将其标记为答案,以便其他人知道。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
  • 2019-12-26
  • 2018-10-04
相关资源
最近更新 更多