我正在使用Appium方法拍摄屏幕快照,并根据元素的坐标和大小裁剪屏幕快照的垂直部分。
我的操作方式:
这是通过getScreenShotAs()
方法完成的
完成了
image.getSubimage(getElementCoordinateX(element),
getElementCoordinateY(element),
getElementWidth(element),getElementHeight(element));
public static int getElementWidth(MobileElement element) {
return element.getSize().getWidth();
}
public static int getElementHeight(MobileElement element) {
return element.getSize().getHeight();
}
public static int getElementCoordinateX(MobileElement element) {
return element.getLocation().getX();
}
public static int getElementCoordinateY(MobileElement element) {
return element.getLocation().getY();
}
我在Android上测试了这种方法,并且可以按预期工作,但是在iOS上,它截取了截屏中截然不同的部分,并且我确定这是正确的元素。
开发人员告诉我,iOS应用程序可使用框架,并且我可能正在获取边界坐标,而不是框架的坐标。我没有找到使用Appium与他们互动的方法。有没有办法使这项工作按预期进行?
答案 0 :(得分:1)
您可以使用以下方法直接获取元素的屏幕截图: Ruby:
element = driver.find_element(:predicate, "type == 'XCUIElementTypeSlider'")
screenshot = driver.element_screenshot_as(element ,:base64)
这应该自动正确地裁剪屏幕截图...