Best Selenium code snippet using org.openqa.selenium.interactions.PointerInput.getName
Source:Actions.java  
...39 * Implements the builder pattern: Builds a CompositeAction containing all actions specified by the40 * method calls.41 */42public class Actions {43  private final static Logger LOG = Logger.getLogger(Actions.class.getName());44  private final WebDriver driver;45  // W3C46  private final Map<InputSource, Sequence> sequences = new HashMap<>();47  private final PointerInput defaultMouse = new PointerInput(MOUSE, "default mouse");48  private final KeyInput defaultKeyboard = new KeyInput("default keyboard");49  // JSON-wire protocol50  private final Keyboard jsonKeyboard;51  private final Mouse jsonMouse;52  protected CompositeAction action = new CompositeAction();53  public Actions(WebDriver driver) {54    this.driver = Preconditions.checkNotNull(driver);55    if (driver instanceof HasInputDevices) {56      HasInputDevices deviceOwner = (HasInputDevices) driver;57      this.jsonKeyboard = deviceOwner.getKeyboard();...Source:ReplayAction.java  
...93    	// corrects bug of waitElementPresent which threw a SessionNotFoundError because driver reference were not94    	// updated before searching element (it used the driver reference of an old test session)95    	HtmlElement element = (HtmlElement)joinPoint.getTarget();96    	element.setDriver(WebUIDriver.getWebDriver(false));97		String targetName = joinPoint.getTarget().toString();98		99		Instant end = systemClock.instant().plusSeconds(element.getReplayTimeout());100    	101		TestAction currentAction = null;102    	String methodName = joinPoint.getSignature().getName();103    	if (!methodName.equals("getCoordinates")) {104    		List<String> pwdToReplace = new ArrayList<>();105    		String actionName = String.format("%s on %s %s", methodName, targetName, LogAction.buildArgString(joinPoint, pwdToReplace, new HashMap<>()));106    		currentAction = new TestAction(actionName, false, pwdToReplace);107    	}108109		// log action before its started. By default, it's OK. Then result may be overwritten if step fails110		// order of steps is the right one (first called is first displayed)111		if (currentAction != null && TestStepManager.getParentTestStep() != null) {112			TestStepManager.getParentTestStep().addAction(currentAction);113		}	114		115		boolean actionFailed = false;116		boolean ignoreFailure = false;117		Throwable currentException = null;118		119		try {120	    	while (end.isAfter(systemClock.instant())) {121122	    		// in case we have switched to an iframe for using previous webElement, go to default content123	    		if (element.getDriver() != null && SeleniumTestsContextManager.isWebTest()) {124	    			element.getDriver().switchTo().defaultContent(); // TODO: error when clic is done, closing current window125	    		}126		    	127		    	try {128		    		reply = joinPoint.proceed(joinPoint.getArgs());129		    		WaitHelper.waitForMilliSeconds(200);130		    		break;131		    	} catch (UnhandledAlertException e) {132		    		throw e;133		    	} catch (MoveTargetOutOfBoundsException | InvalidElementStateException e) {134		    		135		    		// if click has been intercepted, it means element could not be interacted, so allow auto scrolling for further retries136		    		// to avoid trying always the same method, we try without scrolling, then with scrolling, then without, ...137		    		138		    		if (element.isScrollToElementBeforeAction()) {139		    			element.setScrollToElementBeforeAction(false);140		    		} else {141		    			element.setScrollToElementBeforeAction(true);142		    		}143		    	} catch (WebDriverException e) { 144		    		// don't prevent TimeoutException to be thrown when coming from waitForPresent145		    		// only check that cause is the not found element and not an other error (NoSucheSessionError for example)146		    		if ((e instanceof TimeoutException 147		    				&& joinPoint.getSignature().getName().equals("waitForPresent") 148		    				&& e.getCause() instanceof NoSuchElementException) // issue #104: do not log error when waitForPresent raises TimeoutException149		    			|| (e instanceof NotFoundException150		    				&& isFromExpectedConditions(Thread.currentThread().getStackTrace())) // issue #194: return immediately if the action has been performed from ExpectedConditions class151		    																					 //   This way, we let the FluentWait process to retry or re-raise the exception152		    			) 153		    		{154	    				ignoreFailure = true;  155	    				throw e;156		    		}157	158		    		if (end.minusMillis(replay.replayDelayMs() + 100L).isAfter(systemClock.instant())) {159		    			WaitHelper.waitForMilliSeconds(replay.replayDelayMs());160					} else {161						if (e instanceof NoSuchElementException) {162							throw new NoSuchElementException(String.format("Searched element [%s] from page '%s' could not be found", element, element.getOrigin()));163						} else if (e instanceof UnreachableBrowserException) {164							throw new WebDriverException("Browser did not reply, it may have frozen");165						}166						throw e;167					}168		    	} 169				170	    	}171	    	return reply;172		} catch (Throwable e) {173			if (e instanceof NoSuchElementException 174					&& joinPoint.getTarget() instanceof HtmlElement175					&& (joinPoint.getSignature().getName().equals("findElements")176							|| joinPoint.getSignature().getName().equals("findHtmlElements"))) {177				return new ArrayList<WebElement>();178			} else {179				if (!ignoreFailure) {180					actionFailed = true;181					currentException = e;182				}183				throw e;184			}185		} finally {186			if (currentAction != null && TestStepManager.getParentTestStep() != null) {187				currentAction.setFailed(actionFailed);188				scenarioLogger.logActionError(currentException);189			}	190			191			// restore element scrolling flag for further uses192    		element.setScrollToElementBeforeAction(false);193		}194   }195    196	/**197	 * Replay all actions annotated by ReplayOnError if the class is not a subclass of 198	 * HtmlElement199	 * @param joinPoint200	 * @throws Throwable201	 */202	@Around("!execution(public * com.seleniumtests.uipage.htmlelements.HtmlElement+.* (..))"203			+ "&& execution(@com.seleniumtests.uipage.ReplayOnError public * * (..)) && @annotation(replay)")204	public Object replay(ProceedingJoinPoint joinPoint, ReplayOnError replay) throws Throwable {205		206		int replayDelayMs = replay != null ? replay.replayDelayMs(): 100;207		208		Instant end = systemClock.instant().plusSeconds(SeleniumTestsContextManager.getThreadContext().getReplayTimeout());209		Object reply = null;210		211		String targetName = joinPoint.getTarget().toString();212		TestAction currentAction = null;213214		if (joinPoint.getTarget() instanceof GenericPictureElement) {215	    	String methodName = joinPoint.getSignature().getName();216	    	List<String> pwdToReplace = new ArrayList<>();217			String actionName = String.format("%s on %s %s", methodName, targetName, LogAction.buildArgString(joinPoint, pwdToReplace, new HashMap<>()));218			currentAction = new TestAction(actionName, false, pwdToReplace);219	220			// log action before its started. By default, it's OK. Then result may be overwritten if step fails221			// order of steps is the right one (first called is first displayed)222			if (TestStepManager.getParentTestStep() != null) {223				TestStepManager.getParentTestStep().addAction(currentAction);224			}225		}226		227		boolean actionFailed = false;228		Throwable currentException = null;229		230		try {231			while (end.isAfter(systemClock.instant())) {232				233				// chrome automatically scrolls to element before interacting but it may scroll behind fixed header and no error is 234				// raised if action cannot be performed235				if (((CustomEventFiringWebDriver)WebUIDriver.getWebDriver(false)).getBrowserInfo().getBrowser() == BrowserType.CHROME236						|| ((CustomEventFiringWebDriver)WebUIDriver.getWebDriver(false)).getBrowserInfo().getBrowser() == BrowserType.EDGE) {237					updateScrollFlagForElement(joinPoint, true, null);238				}239				240				try {241					reply = joinPoint.proceed(joinPoint.getArgs());242					WaitHelper.waitForMilliSeconds(200);243					break;244					245				// do not replay if error comes from scenario246				} catch (ScenarioException | ConfigurationException | DatasetException e) {247					throw e;248				} catch (MoveTargetOutOfBoundsException | InvalidElementStateException e) {249					updateScrollFlagForElement(joinPoint, null, e);250				} catch (Throwable e) {251	252					if (end.minusMillis(200).isAfter(systemClock.instant())) {253						WaitHelper.waitForMilliSeconds(replayDelayMs);254						continue;255					} else {256						throw e;257					}258				}259			}260			return reply;261		} catch (Throwable e) {262			actionFailed = true;263			currentException = e;264			throw e;265		} finally {266			if (currentAction != null && TestStepManager.getParentTestStep() != null) {267				currentAction.setFailed(actionFailed);268				scenarioLogger.logActionError(currentException);269				270				if (joinPoint.getTarget() instanceof GenericPictureElement) {271					currentAction.setDurationToExclude(((GenericPictureElement)joinPoint.getTarget()).getActionDuration());272				}273			}		274		}275	}276	277	/**278	 * Replays the composite action in case any error occurs279	 * @param joinPoint280	 */281	@Around("execution(public void org.openqa.selenium.interactions.Actions.BuiltAction.perform ())")282	public Object replayCompositeAction(ProceedingJoinPoint joinPoint) throws Throwable {283		return replay(joinPoint, null);284	}285	286	/**287	 * Updates the scrollToelementBeforeAction flag of HtmlElement for CompositeActions288	 * Therefore, it looks at origin field of PointerInput$Move CompositeAction and update the flag289	 * @throws SecurityException 290	 * @throws NoSuchFieldException 291	 * @throws IllegalAccessException 292	 * @throws IllegalArgumentException 293	 */294	private void updateScrollFlagForElement(ProceedingJoinPoint joinPoint, Boolean forcedValue, WebDriverException parentException) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {295		Object actions = joinPoint.getTarget();296		297		// the calling method 'replay(ProceedingJoinPoint joinPoint, ReplayOnError replay)' may be called from GenericPictureElement.class or from Selenium 'Composite Actions'298		// Only the later case is covered here299		if (!actions.getClass().toString().contains("BuiltAction")) {300			return;301		}302		303		Field sequencesField = actions.getClass().getDeclaredField("sequences");304		sequencesField.setAccessible(true);305		Map<InputSource, Sequence> sequences = (Map<InputSource, Sequence>) sequencesField.get(actions);306		307		for (Sequence sequence: sequences.values()) {308			Field actionsField = Sequence.class.getDeclaredField("actions");309			actionsField.setAccessible(true);310			311			LinkedList<Interaction> actionsList = (LinkedList<Interaction>)actionsField.get(sequence);312			313			for (Interaction action: actionsList) {314				if (action.getClass().getName().contains("PointerInput$Move")) {315					Field originField = action.getClass().getDeclaredField("origin");316					originField.setAccessible(true);317					try {318						PointerInput.Origin origin = (PointerInput.Origin) originField.get(action);319						320						// we can change 'scrollToelementBeforeAction' flag only for HtmlElement objects. For RemoteWebElement, this cannot be done so we rethrow the exception321						// so that it can be treated elsewhere (mainly inside replayHtmlElement())322						if (origin.asArg() instanceof HtmlElement) {323							HtmlElement element = (HtmlElement) origin.asArg();324							if (forcedValue == null) {325								if (element.isScrollToElementBeforeAction()) {326					    			element.setScrollToElementBeforeAction(false);327					    		} else {328					    			element.setScrollToElementBeforeAction(true);
...Source:MouseTask.java  
...94    public String getDescription() {95        return this.description;96    }97    @Override98    public String getName() {99        return this.name;100    }101    /**102     * Set the name of the action103     *104     * @param name105     */106    public void setName(final String name) {107        this.name = name;108    }109    /**110     * The second element that is used in the dragAndDrop action111     *112     * @return...Source:CompositeActions.java  
...123		Boolean clic = null;124		boolean clickRequested = false;125126		for (Interaction action: actionsList) {127			if (action.getClass().getName().contains("PointerInput$PointerPress")) {128				Field buttonField = action.getClass().getDeclaredField("button");129				buttonField.setAccessible(true);130				int button = buttonField.getInt(action);131				132				Field directionField = action.getClass().getDeclaredField("direction");133				directionField.setAccessible(true);134				String direction = directionField.get(action).toString();135				136				// only left button137				if (button != 0) {138					clic = null;139					continue;140				}141				
...getName
Using AI Code Generation
1PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");2PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");3PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");4PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");5PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");6PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");7PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");8PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");9PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");10PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");11PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");12PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");13PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");14PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");15PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");16PointerInput finger = new PointerInput(PointergetName
Using AI Code Generation
1PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");2PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");3PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");4PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");5PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");6PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");7PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");8PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");9PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");10PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");11PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");12PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");13PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");14PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");15PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");16PointerInput finger = new PointerInput(PointergetName
Using AI Code Generation
1PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");2PointerInput.MouseButton button = finger.createButton(PointerInput.MouseButton.LEFT.asArg());3driver.perform(Arrays.asList(4    finger.createPointerMove(Duration.ZERO, Origin.viewport(), 0, 0),5    button.createPointerDown(PointerInput.MouseButton.LEFT.asArg()),6    button.createPointerUp(PointerInput.MouseButton.LEFT.asArg())7));8PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");9PointerInput.MouseButton button = finger.createButton(PointerInput.MouseButton.LEFT.asArg());10driver.perform(Arrays.asList(11    finger.createPointerMove(Duration.ZERO, Origin.viewport(), 0, 0),12    button.createPointerDown(PointerInput.MouseButton.LEFT.asArg()),13    button.createPointerUp(PointerInput.MouseButton.LEFT.asArg())14));15  (Session info: chrome=78.0.3904.70)16TouchActions action = new TouchActions(driver);17action.singleTap(element);18JavascriptExecutor js = (JavascriptExecutor) driver;19js.executeScript("window.scrollBy(0,500)");20element.click();21Actions actions = new Actions(driver);22actions.moveToElement(element).click().perform();getName
Using AI Code Generation
1PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");2finger.getPointerId();3finger.getKind();4finger.getName();5finger.createPointerMove(Duration.ZERO, Origin.viewport(), 0, 0);6finger.createPointerDown(MouseButton.LEFT.asArg());7finger.createPointerUp(MouseButton.LEFT.asArg());getName
Using AI Code Generation
1PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");2PointerInput.MouseAction action = finger.createPointerMove(Duration.ofSeconds(0), 3OffsetInput.fromPixels(0, 0), OffsetInput.fromPixels(0, 0));4action.setName("move finger");5action.perform(driver);6PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");7PointerInput.MouseAction action = finger.createPointerMove(Duration.ofSeconds(0), 8OffsetInput.fromPixels(0, 0), OffsetInput.fromPixels(0, 0));9action.perform(driver);10PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");11PointerInput.MouseAction action = finger.createPointerMove(Duration.ofSeconds(0), 12OffsetInput.fromPixels(0, 0), OffsetInput.fromPixels(0, 0));13action.perform(driver);14PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");15PointerInput.MouseAction action = finger.createPointerMove(Duration.ofSeconds(0), 16OffsetInput.fromPixels(0, 0), OffsetInput.fromPixels(0, 0));17action.perform(driver);18PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");19PointerInput.MouseAction action = finger.createPointerMove(Duration.ofSeconds(0), 20OffsetInput.fromPixels(0, 0), OffsetInput.fromPixels(0, 0));21action.perform(driver);22PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");23PointerInput.MouseAction action = finger.createPointerMove(Duration.ofSeconds(0), 24OffsetInput.fromPixels(0, 0), OffsetInput.fromPixels(0, 0));25action.perform(driver);26PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");27PointerInput.MouseAction action = finger.createPointerMove(Duration.ofSeconds(0), 28OffsetInput.fromPixels(0, 0), OffsetInput.fromPixelsgetName
Using AI Code Generation
1PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, “finger”);  2TouchAction action = new TouchAction(driver);  3action.press(finger, 200, 200).perform();  4action.moveTo(finger, 100, 100).perform();  5action.release(finger).perform();6KeyInput key = new KeyInput(KeyInput.Kind.KEYBOARD, “key”);  7Keyboard keyboard = driver.getKeyboard();  8keyboard.pressKey(key);  9keyboard.releaseKey(key);10KeyInput key = new KeyInput(KeyInput.Kind.KEYBOARD, “key”);  11Keyboard keyboard = driver.getKeyboard();  12keyboard.pressKey(key);  13keyboard.releaseKey(key);14KeyInput key = new KeyInput(KeyInput.Kind.KEYBOARD, “key”);  15Keyboard keyboard = driver.getKeyboard();  16keyboard.pressKey(key);  17keyboard.releaseKey(key);18KeyInput key = new KeyInput(KeyInput.Kind.KEYBOARD, “key”);  19Keyboard keyboard = driver.getKeyboard();  20keyboard.pressKey(key);  21keyboard.releaseKey(key);22KeyInput key = new KeyInput(KeyInput.Kind.KEYBOARD, “key”);  23Keyboard keyboard = driver.getKeyboard();  24keyboard.pressKey(key);  25keyboard.releaseKey(key);26KeyInput key = new KeyInput(KeyInput.Kind.KEYBOARD, “key”);  27Keyboard keyboard = driver.getKeyboard();  28keyboard.pressKey(key);  29keyboard.releaseKey(key);30KeyInput key = new KeyInput(KeyInput.Kind.KEYBOARD, “key”);  31Keyboard keyboard = driver.getKeyboard();  32keyboard.pressKey(key);  33keyboard.releaseKey(key);34KeyInput key = new KeyInput(KeyInput.Kind.KEYBOARD, “key”);  35Keyboard keyboard = driver.getKeyboard();  36keyboard.pressKey(key);  37keyboard.releaseKey(key);getName
Using AI Code Generation
1PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");2PointerInput.MouseInput mouse = finger.createPointerMove(Duration.ZERO,3    Coordinates.of(0, 0), Coordinates.of(0, 0));4mouse.setName("mouse");5System.out.println(mouse.getName());6PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");7PointerInput.MouseInput mouse = finger.createPointerMove(Duration.ZERO,8    Coordinates.of(0, 0), Coordinates.of(0, 0));9mouse.setName("mouse");10System.out.println(mouse.getName());LambdaTest’s Selenium 4 tutorial is covering every aspects of Selenium 4 testing with examples and best practices. Here you will learn basics, such as how to upgrade from Selenium 3 to Selenium 4, to some advanced concepts, such as Relative locators and Selenium Grid 4 for Distributed testing. Also will learn new features of Selenium 4, such as capturing screenshots of specific elements, opening a new tab or window on the browser, and new protocol adoptions.
Upgrading From Selenium 3 To Selenium 4?: In this chapter, learn in detail how to update Selenium 3 to Selenium 4 for Java binding. Also, learn how to upgrade while using different build tools such as Maven or Gradle and get comprehensive guidance for upgrading Selenium.
What’s New In Selenium 4 & What’s Being Deprecated? : Get all information about new implementations in Selenium 4, such as W3S protocol adaption, Optimized Selenium Grid, and Enhanced Selenium IDE. Also, learn what is deprecated for Selenium 4, such as DesiredCapabilites and FindsBy methods, etc.
Selenium 4 With Python: Selenium supports all major languages, such as Python, C#, Ruby, and JavaScript. In this chapter, learn how to install Selenium 4 for Python and the features of Python in Selenium 4, such as Relative locators, Browser manipulation, and Chrom DevTool protocol.
Selenium 4 Is Now W3C Compliant: JSON Wireframe protocol is retiring from Selenium 4, and they are adopting W3C protocol to learn in detail about the advantages and impact of these changes.
How To Use Selenium 4 Relative Locator? : Selenium 4 came with new features such as Relative Locators that allow constructing locators with reference and easily located constructors nearby. Get to know its different use cases with examples.
Selenium Grid 4 Tutorial For Distributed Testing: Selenium Grid 4 allows you to perform tests over different browsers, OS, and device combinations. It also enables parallel execution browser testing, reads up on various features of Selenium Grid 4 and how to download it, and runs a test on Selenium Grid 4 with best practices.
Selenium Video Tutorials: Binge on video tutorials on Selenium by industry experts to get step-by-step direction from automating basic to complex test scenarios with Selenium.
LambdaTest also provides certification for Selenium testing to accelerate your career in Selenium automation testing.
Get 100 minutes of automation test minutes FREE!!
