You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium WebDriver无法缩小页面的技术求助

页面缩放适配问题(Selenium 3.141.59 + Java 1.8)

环境:Selenium 3.141.59、Java 1.8

我需要缩小当前页面,因为部分显示器尺寸较小,导致应用无法正常加载。以下是我的示例代码:

public class ScreenResolutionCheck {
static WebDriver driver = null;
public static void main(String[] args) {
    int width = 1512, height = 982; //Default Macbook Pro Size
    WebDriverManager webDriverManager = WebDriverManager.chromedriver().browserInDocker().enableVnc().linux().dockerScreenResolution(width + "x" + height +"x24").timeout(100);
    driver = webDriverManager.create();
    BaseFunctions.logInfoWithOutScreenShot("VNC Url",webDriverManager.getDockerNoVncUrl().toString());

    driver.get("https://opensource-demo.orangehrmlive.com/");
    driver.findElement(By.tagName("body")).sendKeys(Keys.chord(Keys.COMMAND, Keys.SUBTRACT));
    findElement(By.id("txtUsername")).sendKeys("Admin");
    findElement(By.id("txtPassword")).sendKeys("admin123");
    findElement(By.id("btnLogin")).click();

    findElement(By.id("menu_admin_viewAdminModule")).click();

    findElement(By.id("tableWrapper"));
    driver.quit();
    webDriverManager.quit();

}

public static WebElement findElement(By by) {
    WebElement we = new WebDriverWait(driver, 30).until(d -> d.findElement(by));
    return we;
}
}

我尝试过以下方法,均无效:

  • driver.findElement(By.tagName("body")).sendKeys(Keys.chord(Keys.COMMAND,Keys.SUBTRACT));
  • driver.findElement(By.tagName("body")).sendKeys(Keys.chord(Keys.COMMAND,Keys.SHIFT,Keys.SUBTRACT));
  • driver.findElement(By.tagName("body")).sendKeys(Keys.chord(Keys.COMMAND,"-"));
  • new Actions(driver).sendKeys(driver.findElement(By.tagName("body"),Keys.chord(Keys.COMMAND,Keys.SUBTRACT)).build().perform();
  • JavaScript模拟键盘事件:
js.executeScript("arguments[0].dispatchEvent(new KeyboardEvent('keydown',{'key':'Meta'}))",we);
js.executeScript("arguments[0].dispatchEvent(new KeyboardEvent('keydown',{'key':'+'}))",we);
js.executeScript("arguments[0].dispatchEvent(new KeyboardEvent('keyup',{'key':'Meta'}))",we);
js.executeScript("arguments[0].dispatchEvent(new KeyboardEvent('keyup',{'key':'+'}))",we);
  • Chrome启动参数设置:
options.addArguments("force-device-scale-factor=0.75");
options.addArguments("high-dpi-support=0.75");
WebDriver driver = new ChromeDriver(options);

目前仅js.executeScript("document.body.style.zoom='80%'");有效,但页面跳转后缩放会重置,无法满足需求。我参考过相关技术问题但未找到解决方案,Robot类因需要跨不同操作系统运行也不适用,恳请提供可行的解决办法。

内容的提问来源于stack exchange,提问作者Ahamed Abdul Rahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 04:54:16