如何在LeanFT中实现测试执行时浏览器窗口最大化?
解决Chrome窗口最大化+避免多标签页问题
我明白你想要实现类似Selenium里--start-maximized的窗口最大化效果,同时解决当前用配置文件启动时弹出大量标签页的问题——这确实是参数格式转义导致的,我来给你修正方案:
问题根源
你代码里的profileDir参数加了多余的引号和转义字符:
String profileDir = "--user-data-dir=\"c:\\Temp\\profile1\"";
ProcessBuilder会自动处理参数的拆分,这种带引号的写法会让Chrome错误地把整个参数当成要打开的URL,再加上后面的homePage参数,自然就开了多个标签页。
修正后的解决方案
直接去掉多余的引号,同时加上--start-maximized参数来实现窗口最大化,和Selenium的思路一致:
@Test public void chromeWithProfileLaunch() throws Exception { // 去掉引号,直接写路径 String profileDir = "--user-data-dir=c:\\Temp\\profile1"; String leanftChromeExtension = "--load-extension=C:\\Program Files (x86)\\HPE\\LeanFT\\Installations\\Chrome\\Extension"; // 添加最大化参数 String maximizeArg = "--start-maximized"; String homePage = "www.google.com"; new ProcessBuilder( "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe", profileDir, leanftChromeExtension, maximizeArg, // 加入最大化参数 homePage ).start(); Thread.sleep(2000); Browser openedBrowser = BrowserFactory.attach( new BrowserDescription.Builder() .title("Google") .type(BrowserType.CHROME) .build() ); Verify.areEqual(homePage, openedBrowser.getURL()); }
额外优化建议
如果不想用Thread.sleep这种硬等待,可以换成LeanFT的Wait机制,比如:
Wait.until(() -> { try { return BrowserFactory.attach(new BrowserDescription.Builder().title("Google").type(BrowserType.CHROME).build()) != null; } catch (Exception e) { return false; } });
这样能更优雅地等待浏览器加载完成。
内容的提问来源于stack exchange,提问作者plaidshirt
相关产品推荐
相关产品推荐

