Best Karate code snippet using com.intuit.karate.robot.Location
Source:RobotBase.java
...248 public Robot click(int num) {249 int mask = mask(num);250 robot.mousePress(mask);251 if (highlight) {252 getLocation().highlight(highlightDuration);253 int toDelay = CLICK_POST_DELAY - highlightDuration;254 if (toDelay > 0) {255 RobotUtils.delay(toDelay);256 }257 } else {258 RobotUtils.delay(CLICK_POST_DELAY);259 }260 robot.mouseRelease(mask);261 return this;262 }263 @Override264 public Robot doubleClick() {265 click();266 delay(40);267 click();268 return this;269 }270 @Override271 public Robot press() {272 robot.mousePress(1);273 return this;274 }275 @Override276 public Robot release() {277 robot.mouseRelease(1);278 return this;279 }280 @Override281 public Robot input(String[] values) {282 return input(values, 0);283 }284 @Override285 public Robot input(String chars, int delay) {286 String[] array = new String[chars.length()];287 for (int i = 0; i < array.length; i++) {288 array[i] = Character.toString(chars.charAt(i));289 }290 return input(array, delay);291 }292 @Override293 public Robot input(String[] values, int delay) {294 for (String s : values) {295 if (delay > 0) {296 delay(delay);297 }298 input(s);299 }300 return this;301 }302 @Override303 public Robot input(String value) {304 if (highlight) {305 getFocused().highlight(highlightDuration);306 }307 StringBuilder sb = new StringBuilder();308 for (char c : value.toCharArray()) {309 if (Keys.isModifier(c)) {310 sb.append(c);311 int[] codes = RobotUtils.KEY_CODES.get(c);312 if (codes == null) {313 logger.warn("cannot resolve char: {}", c);314 robot.keyPress(c);315 } else {316 robot.keyPress(codes[0]);317 }318 continue;319 }320 int[] codes = RobotUtils.KEY_CODES.get(c);321 if (codes == null) {322 logger.warn("cannot resolve char: {}", c);323 robot.keyPress(c);324 robot.keyRelease(c);325 } else if (codes.length > 1) {326 robot.keyPress(codes[0]);327 robot.keyPress(codes[1]);328 robot.keyRelease(codes[1]);329 robot.keyRelease(codes[0]);330 } else {331 robot.keyPress(codes[0]);332 robot.keyRelease(codes[0]);333 }334 }335 for (char c : sb.toString().toCharArray()) {336 int[] codes = RobotUtils.KEY_CODES.get(c);337 if (codes == null) {338 logger.warn("cannot resolve char: {}", c);339 robot.keyRelease(c);340 } else {341 robot.keyRelease(codes[0]);342 }343 }344 return this;345 }346 public Robot clearFocused() {347 return input(Keys.CONTROL + "a" + Keys.DELETE);348 }349 protected int getHighlightDuration() {350 return highlight ? highlightDuration : -1;351 }352 @Override353 public Element input(String locator, String value) {354 return locate(locator).input(value);355 }356 @Override357 public byte[] screenshot() {358 return screenshot(screen);359 }360 @Override361 public byte[] screenshotActive() {362 return getActive().screenshot();363 }364 public byte[] screenshot(int x, int y, int width, int height) {365 return screenshot(new Region(this, x, y, width, height));366 }367 public byte[] screenshot(Region region) {368 BufferedImage image = region.capture();369 byte[] bytes = OpenCvUtils.toBytes(image);370 context.embed(bytes, "image/png");371 return bytes;372 }373 @Override374 public Robot move(int x, int y) {375 robot.mouseMove(x, y);376 return this;377 }378 @Override379 public Robot click(int x, int y) {380 return move(x, y).click();381 }382 @Override383 public Element highlight(String locator) {384 return locate(Config.DEFAULT_HIGHLIGHT_DURATION, getSearchRoot(), locator);385 }386 @Override387 public List<Element> highlightAll(String locator) {388 return locateAll(Config.DEFAULT_HIGHLIGHT_DURATION, getSearchRoot(), locator);389 }390 @Override391 public Element focus(String locator) {392 return locate(getHighlightDuration(), getSearchRoot(), locator).focus();393 }394 @Override395 public Element locate(String locator) {396 return locate(getHighlightDuration(), getSearchRoot(), locator);397 }398 @Override399 public List<Element> locateAll(String locator) {400 return locateAll(getHighlightDuration(), getSearchRoot(), locator);401 }402 @Override403 public boolean exists(String locator) {404 return optional(locator).isPresent();405 }406 @Override407 public Element optional(String locator) {408 return optional(getSearchRoot(), locator);409 }410 @Override411 public boolean windowExists(String locator) {412 return windowOptional(locator).isPresent();413 }414 @Override415 public Element windowOptional(String locator) {416 return waitForWindowOptional(locator, false);417 }418 @Override419 public Element waitForWindowOptional(String locator) {420 return waitForWindowOptional(locator, true);421 }422 protected Element waitForWindowOptional(String locator, boolean retry) {423 Element prevWindow = currentWindow;424 Element window = window(locator, retry, false); // will update currentWindow 425 currentWindow = prevWindow; // so we reset it426 if (window == null) {427 return new MissingElement(this);428 }429 // note that currentWindow will NOT point to the new window located430 return window;431 }432 protected Element optional(Element searchRoot, String locator) {433 Element found = locateImageOrElement(searchRoot, locator);434 if (found == null) {435 logger.warn("element does not exist: {}", locator);436 return new MissingElement(this);437 }438 if (highlight) {439 found.highlight();440 }441 return found;442 }443 protected Element locate(int duration, Element searchRoot, String locator) {444 Element found;445 if (retryEnabled) {446 found = retryForAny(true, searchRoot, locator);447 } else {448 found = locateImageOrElement(searchRoot, locator);449 if (found == null) {450 String message = "cannot locate: '" + locator + "' (" + searchRoot.getDebugString() + ")";451 logger.error(message);452 throw new RuntimeException(message);453 }454 if (duration > 0) {455 found.getRegion().highlight(duration);456 }457 }458 return found;459 }460 protected List<Element> locateAll(int duration, Element searchRoot, String locator) {461 List<Element> found;462 if (locator.endsWith(".png")) {463 found = locateAllImages(searchRoot, locator);464 } else if (locator.startsWith("{")) {465 found = locateAllText(searchRoot, locator);466 } else {467 found = locateAllInternal(searchRoot, locator);468 }469 if (duration > 0) {470 RobotUtils.highlightAll(searchRoot.getRegion(), found, duration, false);471 }472 return found;473 }474 @Override475 public Element move(String locator) {476 return locate(getHighlightDuration(), getSearchRoot(), locator).move();477 }478 @Override479 public Element click(String locator) {480 return locate(getHighlightDuration(), getSearchRoot(), locator).click();481 }482 @Override483 public Element select(String locator) {484 return locate(getHighlightDuration(), getSearchRoot(), locator).select();485 }486 @Override487 public Element press(String locator) {488 return locate(getHighlightDuration(), getSearchRoot(), locator).press();489 }490 @Override491 public Element release(String locator) {492 return locate(getHighlightDuration(), getSearchRoot(), locator).release();493 }494 private StringUtils.Pair parseOcr(String raw) { // TODO make object495 int pos = raw.indexOf('}');496 String lang = raw.substring(1, pos);497 if (lang.length() < 2) {498 lang = lang + tessLang;499 }500 String text = raw.substring(pos + 1);501 return StringUtils.pair(lang, text);502 }503 public List<Element> locateAllText(Element searchRoot, String path) {504 StringUtils.Pair pair = parseOcr(path);505 String lang = pair.left;506 boolean negative = lang.charAt(0) == '-';507 if (negative) {508 lang = lang.substring(1);509 }510 String text = pair.right;511 return Tesseract.findAll(this, lang, searchRoot.getRegion(), text, negative);512 }513 public Element locateText(Element searchRoot, String path) {514 StringUtils.Pair pair = parseOcr(path);515 String lang = pair.left;516 boolean negative = lang.charAt(0) == '-';517 if (negative) {518 lang = lang.substring(1);519 }520 String text = pair.right;521 return Tesseract.find(this, lang, searchRoot.getRegion(), text, negative);522 }523 private static class PathAndStrict {524 final int strictness;525 final String path;526 public PathAndStrict(String path) {527 int pos = path.indexOf(':');528 if (pos > 0 && pos < 3) {529 strictness = Integer.valueOf(path.substring(0, pos));530 this.path = path.substring(pos + 1);531 } else {532 strictness = 10;533 this.path = path;534 }535 }536 }537 public List<Element> locateAllImages(Element searchRoot, String path) {538 PathAndStrict ps = new PathAndStrict(path);539 List<Region> found = OpenCvUtils.findAll(ps.strictness, this, searchRoot.getRegion(), readBytes(ps.path), true);540 List<Element> list = new ArrayList(found.size());541 for (Region region : found) {542 list.add(new ImageElement(region));543 }544 return list;545 }546 public Element locateImage(Region region, String path) {547 PathAndStrict ps = new PathAndStrict(path);548 return locateImage(region, ps.strictness, readBytes(ps.path));549 }550 public Element locateImage(Region searchRegion, int strictness, byte[] bytes) {551 Region region = OpenCvUtils.find(strictness, this, searchRegion, bytes, true);552 if (region == null) {553 return null;554 }555 return new ImageElement(region);556 }557 @Override558 public Element window(String title) {559 return window(title, true, true);560 }561 private Element window(String title, boolean retry, boolean failWithException) {562 return window(new StringMatcher(title), retry, failWithException);563 }564 @Override565 public Element window(Predicate<String> condition) {566 return window(condition, true, true);567 }568 private Element window(Predicate<String> condition, boolean retry, boolean failWithException) {569 try {570 currentWindow = retry ? retry(() -> windowInternal(condition), w -> w != null, "find window", failWithException) : windowInternal(condition);571 } catch (Exception e) {572 if (failWithException) {573 throw e;574 }575 logger.warn("failed to find window: {}", e.getMessage());576 currentWindow = null;577 }578 if (currentWindow != null && highlight) { // currentWindow can be null579 currentWindow.highlight(getHighlightDuration());580 }581 return currentWindow;582 }583 protected Element getSearchRoot() {584 if (currentWindow == null) {585 logger.warn("using desktop as search root, activate a window or parent element for better performance");586 return getRoot();587 }588 return currentWindow;589 }590 @Override591 public Object waitUntil(Supplier<Object> condition) {592 return waitUntil(condition, true);593 }594 @Override595 public Object waitUntilOptional(Supplier<Object> condition) {596 return waitUntil(condition, false);597 }598 protected Object waitUntil(Supplier<Object> condition, boolean failWithException) {599 return retry(() -> condition.get(), o -> o != null, "waitUntil (function)", failWithException);600 }601 @Override602 public Element waitFor(String locator) {603 return retryForAny(true, getSearchRoot(), locator);604 }605 @Override606 public Element waitForOptional(String locator) {607 return retryForAny(false, getSearchRoot(), locator);608 }609 @Override610 public Element waitForAny(String locator1, String locator2) {611 return retryForAny(true, getSearchRoot(), locator1, locator2);612 }613 @Override614 public Element waitForAny(String[] locators) {615 return retryForAny(true, getSearchRoot(), locators);616 }617 protected Element retryForAny(boolean failWithException, Element searchRoot, String... locators) {618 Element found = retry(() -> waitForAny(searchRoot, locators), r -> r != null, "find by locator(s): " + Arrays.asList(locators), failWithException);619 return found == null ? new MissingElement(this) : found;620 }621 private Element waitForAny(Element searchRoot, String... locators) {622 for (String locator : locators) {623 Element found = locateImageOrElement(searchRoot, locator);624 if (found != null) {625 if (highlight) {626 found.getRegion().highlight(highlightDuration);627 }628 return found;629 }630 }631 return null;632 }633 private Element locateImageOrElement(Element searchRoot, String locator) {634 if (locator.endsWith(".png")) {635 return locateImage(searchRoot.getRegion(), locator);636 } else if (locator.startsWith("{")) {637 return locateText(searchRoot, locator);638 } else if (searchRoot.isImage()) {639 // TODO640 throw new RuntimeException("todo find non-image elements within region");641 } else {642 return locateInternal(searchRoot, locator);643 }644 }645 @Override646 public Element activate(String locator) {647 return locate(locator).activate();648 }649 @Override650 public Element getActive() {651 if (currentWindow == null) {652 throw new RuntimeException("no window has been selected or activated");653 }654 return currentWindow;655 }656 @Override657 public Robot setActive(Element e) {658 if (e.isPresent()) {659 currentWindow = e;660 }661 return this;662 }663 public void debugImage(String path) {664 byte[] bytes = readBytes(path);665 OpenCvUtils.show(bytes, path);666 }667 @Override668 public String getClipboard() {669 try {670 return (String) toolkit.getSystemClipboard().getData(DataFlavor.stringFlavor);671 } catch (Exception e) {672 logger.warn("unable to return clipboard as string: {}", e.getMessage());673 return null;674 }675 }676 @Override677 public Location getLocation() {678 Point p = MouseInfo.getPointerInfo().getLocation();679 return new Location(this, p.x, p.y);680 }681 public Location location(int x, int y) {682 return new Location(this, x, y);683 }684 public Region region(Map<String, Integer> map) {685 return new Region(this, map.get("x"), map.get("y"), map.get("width"), map.get("height"));686 }687 @Override688 public abstract Element getRoot();689 @Override690 public abstract Element getFocused();691 //========================================================================== 692 //693 protected abstract Element windowInternal(String title);694 protected abstract Element windowInternal(Predicate<String> condition);695 protected abstract Element locateInternal(Element root, String locator);696 protected abstract List<Element> locateAllInternal(Element root, String locator);...
Source:WinRobot.java
...24package com.intuit.karate.robot.win;25import com.intuit.karate.core.AutoDef;26import com.intuit.karate.core.ScenarioContext;27import com.intuit.karate.robot.Element;28import com.intuit.karate.robot.Location;29import com.intuit.karate.robot.Robot;30import com.intuit.karate.robot.RobotBase;31import com.intuit.karate.robot.StringMatcher;32import com.intuit.karate.robot.Window;33import com.sun.jna.platform.win32.BaseTSD.ULONG_PTR;34import com.sun.jna.platform.win32.User32;35import com.sun.jna.platform.win32.WinDef.DWORD;36import com.sun.jna.platform.win32.WinDef.LONG;37import com.sun.jna.platform.win32.WinUser;38import com.sun.jna.platform.win32.WinUser.INPUT;39import java.util.ArrayList;40import java.util.Collections;41import java.util.List;42import java.util.Map;43import java.util.function.Predicate;44/**45 *46 * @author pthomas347 */48public class WinRobot extends RobotBase {49 protected static final IUIAutomation UIA = IUIAutomation.INSTANCE;50 public WinRobot(ScenarioContext context, Map<String, Object> options) {51 super(context, options);52 }53 @Override54 public Map<String, Object> afterScenario() {55 logger.debug("after scenario, current window: {}", currentWindow);56 if (autoClose && command != null && currentWindow != null) {57 logger.debug("will attempt to close window for: {}", currentWindow.getName());58 WinUser.HWND hwnd = currentWindow.<IUIAutomationElement>toNative().getCurrentNativeWindowHandle();59 User32.INSTANCE.PostMessage(hwnd, WinUser.WM_QUIT, null, null);60 command.close(false);61 }62 return Collections.EMPTY_MAP;63 }64 @Override65 public List<Window> getAllWindows() {66 IUIAutomationCondition isWindow = UIA.createPropertyCondition(Property.ControlType, ControlType.Window.value);67 IUIAutomationElementArray array = UIA.getRootElement().findAll(TreeScope.Descendants, isWindow);68 int count = array.getLength();69 List<Window> list = new ArrayList(count);70 for (int i = 0; i < count; i++) {71 IUIAutomationElement e = array.getElement(i);72 if (e.isValid()) {73 list.add(new WinWindow(this, e));74 }75 }76 return list;77 }78 @Override79 protected Element windowInternal(String title) {80 return windowInternal(new StringMatcher(title));81 }82 @Override83 protected Element windowInternal(Predicate<String> condition) {84 IUIAutomationCondition isWindow = UIA.createPropertyCondition(Property.ControlType, ControlType.Window.value);85 IUIAutomationElementArray windows = UIA.getRootElement().findAll(TreeScope.Descendants, isWindow);86 int count = windows.getLength();87 for (int i = 0; i < count; i++) {88 IUIAutomationElement child = windows.getElement(i);89 if (!child.isValid()) {90 logger.warn("invalid window: {}", child);91 continue;92 }93 String name = child.getCurrentName();94 if (name == null) {95 logger.warn("name is null for window: {}", child);96 continue;97 }98 if (logger.isTraceEnabled()) {99 logger.trace("scanning window: {}", name);100 }101 if (condition.test(name)) {102 if (logger.isTraceEnabled()) {103 logger.trace("found window: {}", name);104 }105 return new WinWindow(this, child).focus();106 }107 }108 logger.warn("failed to find window: {}", condition);109 return null;110 }111 private IUIAutomationCondition by(Property property, String value) {112 return UIA.createPropertyCondition(property, value);113 }114 protected List<Element> toElements(IUIAutomationElementArray array) {115 int count = array.getLength();116 List<Element> list = new ArrayList(count);117 for (int i = 0; i < count; i++) {118 IUIAutomationElement e = array.getElement(i);119 if (e.isValid()) {120 list.add(new WinElement(this, e));121 }122 }123 return list;124 }125 @Override126 public List<Element> locateAllInternal(Element root, String locator) {127 IUIAutomationElement parent = root.<IUIAutomationElement>toNative();128 IUIAutomationCondition condition;129 if (PathSearch.isWildcard(locator)) {130 locator = "//*{" + locator + "}";131 }132 if (locator.startsWith("/")) {133 if (locator.startsWith("/root")) {134 locator = locator.substring(5);135 parent = UIA.getRootElement();136 }137 List<Element> searchResults = new ArrayList();138 PathSearch search = new PathSearch(locator, true);139 walkPathAndFind(searchResults, search, UIA.getControlViewWalker(), parent, 0);140 return searchResults;141 } else if (locator.startsWith("#")) {142 condition = by(Property.AutomationId, locator.substring(1));143 } else {144 condition = by(Property.Name, locator);145 }146 IUIAutomationElementArray found = parent.findAll(TreeScope.Descendants, condition);147 return toElements(found);148 }149 @Override150 public Element locateInternal(Element root, String locator) {151 IUIAutomationElement parent = root.<IUIAutomationElement>toNative();152 IUIAutomationCondition condition;153 if (PathSearch.isWildcard(locator)) {154 locator = "//*{" + locator + "}";155 }156 if (locator.startsWith("/")) {157 if (locator.startsWith("/root")) {158 locator = locator.substring(5);159 parent = UIA.getRootElement();160 }161 List<Element> searchResults = new ArrayList();162 PathSearch search = new PathSearch(locator, false);163 walkPathAndFind(searchResults, search, UIA.getControlViewWalker(), parent, 0);164 if (searchResults.isEmpty()) {165 return null;166 } else {167 return searchResults.get(0);168 }169 } else if (locator.startsWith("#")) {170 condition = by(Property.AutomationId, locator.substring(1));171 } else {172 condition = by(Property.Name, locator);173 }174 IUIAutomationElement found = parent.findFirst(TreeScope.Descendants, condition);175 if (!found.isValid()) { // important in this case176 return null;177 }178 return new WinElement(this, found);179 }180 @Override181 public Element getRoot() {182 return new WinElement(this, UIA.getRootElement());183 }184 @AutoDef185 @Override186 public Element getFocused() {187 return new WinElement(this, UIA.getFocusedElement());188 }189 private void walkPathAndFind(List<Element> searchResults, PathSearch search,190 IUIAutomationTreeWalker walker, IUIAutomationElement e, int depth) {191 PathSearch.Chunk chunk = search.chunks.get(depth);192 IUIAutomationCondition condition;193 ControlType controlType;194 if (chunk.controlType == null || "*".equals(chunk.controlType)) {195 condition = UIA.getControlViewCondition();196 controlType = null;197 } else {198 controlType = ControlType.fromName(chunk.controlType);199 condition = UIA.createPropertyCondition(Property.ControlType, controlType.value);200 }201 IUIAutomationElementArray array = e.findAll(chunk.anyDepth ? TreeScope.Descendants : TreeScope.Children, condition);202 if (!array.isValid()) { // the tree can be unstable203 return;204 }205 int count = array.getLength();206 boolean leaf = depth == search.chunks.size() - 1;207 for (int i = 0; i < count; i++) {208 if (chunk.index != -1 && chunk.index != i) {209 continue;210 }211 IUIAutomationElement child = array.getElement(i);212 if (!child.isValid()) { // the tree can be unstable213 continue;214 }215 if (chunk.nameCondition != null) {216 String name = child.getCurrentName();217 if (!chunk.nameCondition.test(name)) {218 continue;219 }220 }221 if (chunk.className != null) {222 String className = child.getClassName();223 if (!chunk.className.equalsIgnoreCase(className)) {224 continue;225 }226 }227 if (leaf) {228 // already filtered to content-type, so we have a match !229 searchResults.add(new WinElement(this, child));230 if (!search.findAll) {231 return; // exit early232 }233 } else {234 walkPathAndFind(searchResults, search, walker, child, depth + 1);235 }236 }237 }238 @Override239 public Robot move(int x, int y) {240 super.move(x, y);241 Location loc = getLocation();242 moveInternal(-loc.x / 4, -loc.y / 4);243 while (getLocation().x < x - 1) {244 moveInternal(1, 0);245 }246 while (getLocation().y < y - 1) {247 moveInternal(0, 1);248 }249 return this;250 }251 private static void moveInternal(int x, int y) {252 INPUT input = new INPUT();253 input.type = new DWORD(INPUT.INPUT_MOUSE);254 input.input.setType("mi");255 input.input.mi.dx = new LONG(x);256 input.input.mi.dy = new LONG(y);257 input.input.mi.time = new DWORD(0);258 input.input.mi.dwExtraInfo = new ULONG_PTR(0);259 input.input.mi.dwFlags = new DWORD(1); // mouse move260 User32.INSTANCE.SendInput(new DWORD(1), new INPUT[]{input}, input.size());...
Source:WinElement.java
...22 * THE SOFTWARE.23 */24package com.intuit.karate.robot.win;25import com.intuit.karate.robot.Element;26import com.intuit.karate.robot.Location;27import com.intuit.karate.robot.Region;28import com.intuit.karate.robot.RobotBase;29import com.sun.jna.platform.win32.Variant;30import com.sun.jna.platform.win32.WinDef;31import java.util.ArrayList;32import java.util.List;33/**34 *35 * @author pthomas336 */37public class WinElement implements Element {38 protected final IUIAutomationElement e;39 private final WinRobot robot;40 public WinElement(WinRobot robot, IUIAutomationElement e) {41 this.robot = robot;42 this.e = e;43 }44 @Override45 public RobotBase getRobot() {46 return robot;47 }48 @Override49 public boolean isPresent() {50 return e.isValid() && !e.isNull();51 }52 @Override53 public boolean isEnabled() {54 return e.getCurrentIsEnabled();55 }56 @Override57 public boolean isImage() {58 return false;59 }60 @Override61 public Region getRegion() {62 WinDef.RECT rect = e.getCurrentBoundingRectangle();63 return new Region(robot, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top);64 }65 private Location getClickablePoint() {66 WinDef.POINT p = e.getClickablePoint();67 return p == null ? getRegion().getCenter() : new Location(robot, p.x, p.y);68 }69 @Override70 public Element focus() {71 e.setFocus();72 return this;73 }74 public Element invoke() {75 if (isInvokePatternAvailable()) {76 IUIAutomationInvokePattern invokePattern = e.getCurrentPattern(IUIAutomationInvokePattern.class);77 invokePattern.invoke();78 } else {79 click();80 }81 return this;...
Location
Using AI Code Generation
1import com.intuit.karate.robot.Location;2import com.intuit.karate.robot.Robot;3import com.intuit.karate.robot.RobotException;4import com.intuit.karate.robot.RobotFactory;5import com.intuit.karate.robot.RobotType;6import com.intuit.karate.robot.Screen;7import com.intuit.karate.robot.ScreenFactory;8import com.intuit.karate.robot.ScreenType;9import com.intuit.karate.robot.Window;10import com.intuit.karate.robot.WindowType;11import com.intuit.karate.robot.WindowFactory;12import java.awt.Color;13import java.awt.Dimension;14import java.awt.Image;15import java.awt.Point;16import java.awt.Rectangle;17import java.awt.Toolkit;18import java.awt.image.BufferedImage;19import java.io.File;20import java.io.IOException;21import java.util.List;22import javax.imageio.ImageIO;23import org.slf4j.Logger;24import org.slf4j.LoggerFactory;25public class App {26 public static void main(String[] args) throws RobotException, IOException {27 Robot robot = RobotFactory.getRobot(RobotType.JAVA_AWT);28 Screen screen = ScreenFactory.getScreen(ScreenType.JAVA_AWT);29 Window window = WindowFactory.getWindow(WindowType.JAVA_AWT);30 Dimension screenSize = screen.getScreenSize();31 int numScreens = screen.getNumScreens();32 Rectangle screenBounds = screen.getScreenBounds();33 Rectangle screenBounds2 = screen.getScreenBounds(100, 100);34 Rectangle screenBounds3 = screen.getScreenBounds(new Location(100, 100));35 Rectangle screenBounds4 = screen.getScreenBounds(new Point(100, 100));36 Rectangle screenBounds5 = screen.getScreenBounds(new Location(100, 100), new Dimension(100, 100));37 Rectangle screenBounds6 = screen.getScreenBounds(new Point(100, 100), new Dimension(100, 100));
Location
Using AI Code Generation
1package demo;2import com.intuit.karate.robot.Location;3import com.intuit.karate.robot.Robot;4import java.awt.AWTException;5public class 4 {6 public static void main(String[] args) throws AWTException {7 Robot robot = new Robot();8 Location loc = new Location(100, 100);9 robot.mouseMove(loc);10 robot.mouseClick();11 }12}
Location
Using AI Code Generation
1import com.intuit.karate.robot.Location;2import com.intuit.karate.robot.Robot;3import java.awt.AWTException;4import java.awt.Robot;5import java.awt.event.KeyEvent;6import java.awt.event.InputEvent;7import java.awt.Toolkit;8import java.awt.Dimension;9import java.awt.Rectangle;10import java.awt.image.BufferedImage;11import javax.imageio.ImageIO;12import java.io.File;13import java.awt.MouseInfo;14import java.awt.Point;15public class 4{16public static void main(String[] args) throws AWTException, InterruptedException, IOException {17Robot robot = new Robot();18Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();19Rectangle screenRectangle = new Rectangle(screenSize);20BufferedImage image = robot.createScreenCapture(screenRectangle);21ImageIO.write(image, "png", new File("screenshot.png"));22Point mousePoint = MouseInfo.getPointerInfo().getLocation();23int x = mousePoint.x;24int y = mousePoint.y;25System.out.println("Current Mouse Location: " + x + "," + y);26robot.mouseMove(x, y);27robot.mousePress(InputEvent.BUTTON1_MASK);28robot.mouseRelease(InputEvent.BUTTON1_MASK);29robot.keyPress(KeyEvent.VK_A);30robot.keyRelease(KeyEvent.VK_A);31robot.keyPress(KeyEvent.VK_CONTROL);32robot.keyRelease(KeyEvent.VK_CONTROL);33robot.keyPress(KeyEvent.VK_V);34robot.keyRelease(KeyEvent.VK_V);
Location
Using AI Code Generation
1import com.intuit.karate.robot.Location;2import com.intuit.karate.robot.Robot;3public class 4 {4 public static void main(String[] args) {5 Robot robot = new Robot();6 robot.mouseMove(new Location(100, 200));7 robot.mousePress();8 robot.mouseRelease();9 }10}11import com.intuit.karate.robot.Mouse;12import com.intuit.karate.robot.Robot;13public class 5 {14 public static void main(String[] args) {15 Robot robot = new Robot();16 robot.mouseMove(new Location(100, 200));17 robot.mousePress();18 robot.mouseRelease();19 }20}21import com.intuit.karate.robot.Robot;22public class 6 {23 public static void main(String[] args) {24 Robot robot = new Robot();25 robot.mouseMove(new Location(100, 200));26 robot.mousePress();27 robot.mouseRelease();28 }29}30import com.intuit.karate.robot.Screen;31public class 7 {32 public static void main(String[] args) {33 Screen screen = new Screen();34 int width = screen.getWidth();35 int height = screen.getHeight();36 System.out.println("Width: " + width + " Height: " + height);37 }38}39import com.intuit.karate.robot.Screen;40public class 8 {
Location
Using AI Code Generation
1import static com.intuit.karate.robot.RobotUtils.*;2import java.awt.*;3import com.intuit.karate.robot.*;4import com.intuit.karate.robot.RobotUtils;5public class 4 {6 public static void main(String[] args) {7 Robot robot = RobotUtils.getRobot();
Location
Using AI Code Generation
1import com.intuit.karate.robot.*;2import java.awt.*;3import java.awt.event.*;4import java.awt.image.*;5import java.io.*;6import javax.imageio.*;7import javax.swing.*;8import javax.swing.event.*;9import java.util.*;10class 4 {11 public static void main(String[] args) throws Exception {12 Robot robot = new Robot();13 BufferedImage image = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));14 File outputfile = new File("saved.png");15 ImageIO.write(image, "png", outputfile);16 Location loc = new Location(100, 100);17 loc.click();18 }19}20import com.intuit.karate.robot.*;21import java.awt.*;22import java.awt.event.*;23import java.awt.image.*;24import java.io.*;25import javax.imageio.*;26import javax.swing.*;27import javax.swing.event.*;28import java.util.*;29class 5 {30 public static void main(String[] args) throws Exception {31 Robot robot = new Robot();32 BufferedImage image = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));33 File outputfile = new File("saved.png");34 ImageIO.write(image, "png", outputfile);35 Location loc = new Location(100, 100);36 loc.click();37 loc.rightClick();38 }39}40import com.intuit.karate.robot.*;41import java.awt.*;42import java.awt.event.*;43import java.awt.image.*;44import java.io.*;45import javax.imageio.*;46import javax.swing.*;47import javax.swing.event.*;48import java.util.*;49class 6 {50 public static void main(String[] args) throws Exception {51 Robot robot = new Robot();52 BufferedImage image = robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));53 File outputfile = new File("saved.png");54 ImageIO.write(image, "png", outputfile);55 Location loc = new Location(100, 100);56 loc.click();57 loc.rightClick();58 loc.click();59 }60}61import com.intuit.karate.robot.*;62import java.awt.*;63import java.awt.event.*;64import java.awt.image.*;65import java.io.*;66import
Location
Using AI Code Generation
1import com.intuit.karate.robot.*;2import java.awt.*;3import java.awt.image.*;4import java.io.*;5import javax.imageio.*;6import java.util.*;7import java.awt.event.*;8import java.awt.Robot;9import java.awt.AWTException;10import java.awt.Rectangle;11import java.awt.Toolkit;12import java.awt.image.BufferedImage;13import javax.imageio.ImageIO;14import java.io.File;15import java.io.IOException;16public class 4 {17public static void main(String[] args) throws Exception {18ImageFinder finder = new ImageFinder();19Robot robot = new Robot();20Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());21BufferedImage image = robot.createScreenCapture(screenRect);22ImageIO.write(image, "png", new File("D:\\screenshot.png"));23File file = new File("D:\\screenshot.png");24BufferedImage image1 = ImageIO.read(file);25Location loc = finder.find(image1, "D:\\icon.png");26System.out.println("location of the image is: "+loc);27}28}
Location
Using AI Code Generation
1import com.intuit.karate.robot.*;2import java.awt.*;3import java.awt.event.*;4import java.awt.image.*;5import java.io.*;6import javax.imageio.*;7public class 4 {8public static void main(String[] args) throws Exception {9Robot robot = new Robot();10Screen screen = new Screen(robot);11Location location = new Location();12ScreenImage screenImage = new ScreenImage();13ScreenPixel screenPixel = new ScreenPixel();14BufferedImage image;15Color color;16File file;17boolean isButtonVisible;18int x;19int y;20double confidence;21String name = "button.png";22file = new File(name);
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!