在通过Jenkins作为Windows服务运行时无法最大化浏览器窗口

4

你控制“从机”吗?如果从机以普通程序的方式启动,你可以与桌面进行交互。 - Jayan
不,我没有任何从属机器,Jenkins 运行在我的本地主机 8080 服务器上。 - Rahul
1
我也遇到了类似的问题,当我配置我的脚本在Jenkins上运行时,脚本失败了,因为Chrome浏览器无法最大化。然而,当我手动登录到Jenkins节点并执行我的脚本时,Chrome浏览器可以最大化。有人遇到过这个问题的解决方案吗?感谢帮助! - MamathaMacherla
2个回答

1

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

我唯一似乎能解决这个问题的方法是将Jenkins作为Windows服务删除,并使用脚本从CMD中运行它。


是的,我相信我需要以同样的方式去做。 - Rahul
如果这对Rahul有帮助,请确保将其标记为答案,以便解决您的问题,让其他人知道。 :) - colin

0

我在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 也支持 这样的解决方法


谢谢回复,但我仍然无法获得完整的大小。我需要复制您提供的所有代码吗?还是只需要Senkeys语句?您能否请提供Java代码?这将非常有帮助,因为我无法从您上面提供的语句中找到Position方法。 - Rahul
这是适用于我个人的完整解决方案(应该几乎与编程语言无关)。但是您可以只使用JavaScriptExecutor部分(也受JAVA支持)和“_driver.FindElement(By.CssSelector('body')).SendKeys(Keys.F11);”如[此处所示](https://dev59.com/KmIk5IYBdhLWcg3wdd0l)。这应该可以解决问题。 - ekostadinov
使用了这个,但是当我截屏时它仍然和之前一样 :( System.setProperty("webdriver.chrome.driver","用于Chrome驱动的路径"); driver = new ChromeDriver(); driver.get("http://www.google.com/"); Thread.sleep(3000); driver.findElement(By.tagName("body")).sendKeys(Keys.F11); - Rahul
即使这样也不行 driver.get("http://www.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); - Rahul
即使这个也不行,呃.. :( driver.get("http://www.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); - Rahul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接