javascript - iframe缩小问题触发滚动硒java
问题描述
我正在尝试从具有巨大 iframe 的大型表格报告中捕获快照。为了捕获全屏,我需要缩小。使用常规 url 页面,以下代码可以完美运行,但是对于 iframe
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("document.body.style.zoom = '50%'");
不起作用它的魅力,它将 iframe 容器缩放到 50%,但内容文本大小保持不变。
然后我加了
driver.switchTo().frame(driver.findElement(By.tagName("iframe")));
这有助于将缩放专门定向到该 iframe,但触发了滚动。
这是代码:
@Component
public class TableauReportingPage {
@Autowired
private BrowserCommands browserCommands;
@Autowired
private WebDriverService webDriverService;
public void openExistingResource(String url) throws Exception{
WebDriver driver = webDriverService.openNewBrowser();
driver.manage().window().setSize(new Dimension(1650,950));
driver.navigate().to(url);
Thread.sleep(20000);
driver.switchTo().frame(driver.findElement(By.tagName("iframe")));
Thread.sleep(20000);
// for(int i=0; i<6; i++){
// System.out.println(i);
// new Actions(driver)
// .sendKeys(Keys.CONTROL).sendKeys(Keys.SUBTRACT)
// .perform();
// browserCommands.findElementsById("viz-client-container").
// sendKeys(Keys.chord(Keys.CONTROL,Keys.SUBTRACT));
// }
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("document.body.style.zoom = '50%'");
Thread.sleep(20000);
}
public File getScreenshot(){
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return browserCommands.getScreenshot();
}
}
这是之前的图片: 在此处输入图片描述
这是执行代码后: 在此处输入图像描述
知道如何正确编码和缩放 iframe 以查看所有对象的屏幕截图吗?
解决方案
推荐阅读
- r - R包序数中带有CLMM2的固定效应优势比的置信区间
- python-3.x - 如何检查压缩字符串包含多少字节?
- android - 我想从我的 android 应用分享到 whatsapp 的链接
- python - 将另一列添加到基于同一列的先前值添加的 pandas 数据框
- c# - 数据网格视图未从图像列中读取空行
- git - Resolve conflicts in favor of our/their keeping unconflicting changes
- sql - 在 json 集合返回函数中使用合并
- angular - Angular Material Modal 必须是组件的原因?
- c# - 如何将数据表值分配给变量
- python - Statsmodels OLS get_prediction 对样本外数据