使用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
相关产品推荐
相关产品推荐

