Best Selenium code snippet using org.openqa.selenium.interactions.Interface HasInputDevices
Source:DelegatingWebDriver.java
1/*2 * Copyright 2019-2020 the original author or authors.3 *4 * Licensed under the Apache License, Version 2.0 (the "License");5 * you may not use this file except in compliance with the License.6 * You may obtain a copy of the License at7 *8 * https://www.apache.org/licenses/LICENSE-2.09 *10 * Unless required by applicable law or agreed to in writing, software11 * distributed under the License is distributed on an "AS IS" BASIS,12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.13 * See the License for the specific language governing permissions and14 * limitations under the License.15 */16package org.vividus.selenium.driver;17import java.util.Collection;18import java.util.List;19import java.util.Set;20import org.openqa.selenium.By;21import org.openqa.selenium.Capabilities;22import org.openqa.selenium.HasCapabilities;23import org.openqa.selenium.JavascriptExecutor;24import org.openqa.selenium.OutputType;25import org.openqa.selenium.TakesScreenshot;26import org.openqa.selenium.WebDriver;27import org.openqa.selenium.WebDriverException;28import org.openqa.selenium.WebElement;29import org.openqa.selenium.WrapsDriver;30import org.openqa.selenium.interactions.HasInputDevices;31import org.openqa.selenium.interactions.HasTouchScreen;32import org.openqa.selenium.interactions.Interactive;33import org.openqa.selenium.interactions.Keyboard;34import org.openqa.selenium.interactions.Mouse;35import org.openqa.selenium.interactions.Sequence;36import org.openqa.selenium.interactions.TouchScreen;37public class DelegatingWebDriver implements WebDriver, JavascriptExecutor, TakesScreenshot,38 WrapsDriver, HasInputDevices, HasTouchScreen, HasCapabilities, Interactive39{40 private static final String JAVASCRIPT_NOT_SUPPORTED = "Underlying driver instance does not support executing"41 + " javascript";42 private static final String SCREENSHOTS_NOT_SUPPORTED = "Underlying driver instance does not support taking"43 + " screenshots";44 private static final String ADVANCED_INTERACTION_NOT_SUPPORTED = "Underlying driver does not implement advanced"45 + " user interactions yet.";46 private static final String DRIVER_NOT_IMPLEMENT_HAS_CAPABILITIES = "Wrapped WebDriver doesn't implement"47 + " HasCapabilities interface";48 private final WebDriver wrappedDriver;49 public DelegatingWebDriver(WebDriver webDriver)50 {51 wrappedDriver = webDriver;52 }53 @Override54 public void get(String url)55 {56 wrappedDriver.get(url);57 }58 @Override59 public String getCurrentUrl()60 {61 return wrappedDriver.getCurrentUrl();62 }63 @Override64 public String getTitle()65 {66 return wrappedDriver.getTitle();67 }68 @Override69 public List<WebElement> findElements(By by)70 {71 return wrappedDriver.findElements(by);72 }73 @Override74 public WebElement findElement(By by)75 {76 return wrappedDriver.findElement(by);77 }78 @Override79 public String getPageSource()80 {81 return wrappedDriver.getPageSource();82 }83 @Override84 public void close()85 {86 wrappedDriver.close();87 }88 @Override89 public void quit()90 {91 wrappedDriver.quit();92 }93 @Override94 public Set<String> getWindowHandles()95 {96 return wrappedDriver.getWindowHandles();97 }98 @Override99 public String getWindowHandle()100 {101 return wrappedDriver.getWindowHandle();102 }103 @Override104 public TargetLocator switchTo()105 {106 return wrappedDriver.switchTo();107 }108 @Override109 public Navigation navigate()110 {111 return wrappedDriver.navigate();112 }113 @Override114 public Options manage()115 {116 return wrappedDriver.manage();117 }118 @Override119 public WebDriver getWrappedDriver()120 {121 return wrappedDriver;122 }123 @Override124 public TouchScreen getTouch()125 {126 if (wrappedDriver instanceof HasTouchScreen)127 {128 return ((HasTouchScreen) wrappedDriver).getTouch();129 }130 throw new UnsupportedOperationException(ADVANCED_INTERACTION_NOT_SUPPORTED);131 }132 @Override133 public Keyboard getKeyboard()134 {135 if (wrappedDriver instanceof HasInputDevices)136 {137 return ((HasInputDevices) wrappedDriver).getKeyboard();138 }139 throw new UnsupportedOperationException(ADVANCED_INTERACTION_NOT_SUPPORTED);140 }141 @Override142 public Mouse getMouse()143 {144 if (wrappedDriver instanceof HasInputDevices)145 {146 return ((HasInputDevices) wrappedDriver).getMouse();147 }148 throw new UnsupportedOperationException(ADVANCED_INTERACTION_NOT_SUPPORTED);149 }150 @Override151 public <X> X getScreenshotAs(OutputType<X> target) throws WebDriverException152 {153 if (wrappedDriver instanceof TakesScreenshot)154 {155 return ((TakesScreenshot) wrappedDriver).getScreenshotAs(target);156 }157 throw new UnsupportedOperationException(SCREENSHOTS_NOT_SUPPORTED);158 }159 @Override160 public Object executeScript(String script, Object... args)161 {162 if (wrappedDriver instanceof JavascriptExecutor)163 {164 return ((JavascriptExecutor) wrappedDriver).executeScript(script, args);165 }166 throw new UnsupportedOperationException(JAVASCRIPT_NOT_SUPPORTED);167 }168 @Override169 public Object executeAsyncScript(String script, Object... args)170 {171 if (wrappedDriver instanceof JavascriptExecutor)172 {173 return ((JavascriptExecutor) wrappedDriver).executeAsyncScript(script, args);174 }175 throw new UnsupportedOperationException(JAVASCRIPT_NOT_SUPPORTED);176 }177 @Override178 public Capabilities getCapabilities()179 {180 if (wrappedDriver instanceof HasCapabilities)181 {182 return ((HasCapabilities) wrappedDriver).getCapabilities();183 }184 throw new IllegalStateException(DRIVER_NOT_IMPLEMENT_HAS_CAPABILITIES);185 }186 @Override187 public void perform(Collection<Sequence> actions)188 {189 if (wrappedDriver instanceof Interactive)190 {191 ((Interactive) wrappedDriver).perform(actions);192 return;193 }194 throw new UnsupportedOperationException(ADVANCED_INTERACTION_NOT_SUPPORTED);195 }196 @Override197 public void resetInputState()198 {199 if (wrappedDriver instanceof Interactive)200 {201 ((Interactive) wrappedDriver).resetInputState();202 return;203 }204 throw new UnsupportedOperationException(ADVANCED_INTERACTION_NOT_SUPPORTED);205 }206}...
Source:ThreadLocalWebDriver.java
1package com.dev9.webtest.driver;2import com.dev9.webtest.util.SauceUtils;3import org.openqa.selenium.By;4import org.openqa.selenium.JavascriptExecutor;5import org.openqa.selenium.WebDriver;6import org.openqa.selenium.WebElement;7import org.openqa.selenium.interactions.HasInputDevices;8import org.openqa.selenium.interactions.Keyboard;9import org.openqa.selenium.interactions.Mouse;10import org.openqa.selenium.remote.RemoteWebDriver;11import org.slf4j.Logger;12import org.slf4j.LoggerFactory;13import java.util.List;14import java.util.Set;15/**16 * The purpose of this class is to provide a ThreadLocal instance of a WebDriver.17 *18 * @author <a href="mailto:Justin.Graham@dev9.com">Justin Graham</a>19 * @since 8/7/1320 */21public class ThreadLocalWebDriver implements WebDriver, JavascriptExecutor, HasInputDevices {22 private static final Logger LOG = LoggerFactory.getLogger(ThreadLocalWebDriver.class);23 private static ThreadLocal<WebDriver> driver = new ThreadLocal<WebDriver>();24 private static ThreadLocal<Class> testClass = new ThreadLocal<Class>();25 private static ThreadLocal<TargetWebDriver> targetWebDriver = new ThreadLocal<TargetWebDriver>();26 private static ThreadLocal<String> jobId = new ThreadLocal<String>();27 public ThreadLocalWebDriver(Class clazz) {28 testClass.set(clazz);29 targetWebDriver.set(new TargetWebDriver(testClass.get()));30 init();31 }32 public ThreadLocalWebDriver(Class clazz, String testDescription) {33 testClass.set(clazz);34 TargetWebDriver targetDriver = new TargetWebDriver(clazz);35 if (testDescription != null && !testDescription.equals("")) {36 targetDriver.getCapabilities().setCapability("name", testDescription);37 }38 targetWebDriver.set(targetDriver);39 init();40 }41 private void init() {42 setDriver(targetWebDriver.get());43 setJobId();44 reportURL();45 }46 private void setDriver(TargetWebDriver d) {47 driver.set(d.build());48 }49 private void setJobId() {50 jobId.set(SauceUtils.getJobId(driver.get()));51 }52 public String getJobUrl() {53 return SauceUtils.getJobUrl(driver.get());54 }55 public String getJobId() {56 return jobId.get();57 }58 public boolean instanceOf(Class clazz) {59 return clazz.isAssignableFrom(driver.get().getClass());60 }61 public boolean isRemote() {62 return targetWebDriver.get().isRemote();63 }64 public Browser getBrowser() {65 return targetWebDriver.get().getBrowser();66 }67 public String getSessionId() {68 if (driver.get() instanceof RemoteWebDriver) {69 return ((RemoteWebDriver) driver.get()).getSessionId().toString();70 }71 return null;72 }73 @Override74 public void get(String s) {75 driver.get().get(s);76 }77 /* ==============================================================================78 WebDriver Interface79 ============================================================================== */80 @Override81 public String getCurrentUrl() {82 return driver.get().getCurrentUrl();83 }84 @Override85 public String getTitle() {86 return driver.get().getTitle();87 }88 @Override89 public List<WebElement> findElements(By by) {90 return driver.get().findElements(by);91 }92 @Override93 public WebElement findElement(By by) {94 return driver.get().findElement(by);95 }96 @Override97 public String getPageSource() {98 return driver.get().getPageSource();99 }100 @Override101 public void close() {102 driver.get().close();103 }104 @Override105 public void quit() {106 driver.get().quit();107 }108 @Override109 public Set<String> getWindowHandles() {110 return driver.get().getWindowHandles();111 }112 @Override113 public String getWindowHandle() {114 return driver.get().getWindowHandle();115 }116 @Override117 public TargetLocator switchTo() {118 return driver.get().switchTo();119 }120 @Override121 public Navigation navigate() {122 return driver.get().navigate();123 }124 @Override125 public Options manage() {126 return driver.get().manage();127 }128 @Override129 public Object executeScript(String s, Object... objects) {130 return ((JavascriptExecutor) driver.get()).executeScript(s, objects);131 }132 /* ==============================================================================133 JavascriptExecutor Interface134 ============================================================================== */135 @Override136 public Object executeAsyncScript(String s, Object... objects) {137 return ((JavascriptExecutor) driver.get()).executeAsyncScript(s, objects);138 }139 @Override140 public Keyboard getKeyboard() {141 return ((HasInputDevices) driver.get()).getKeyboard();142 }143 /* ==============================================================================144 HasInputDevices Interface145 ============================================================================== */146 @Override147 public Mouse getMouse() {148 return ((HasInputDevices) driver.get()).getMouse();149 }150 private void reportURL() {151 if (targetWebDriver.get().isRemote()) {152 LOG.info("Remote job url: {}", getJobUrl());153 }154 }155}...
Source:MouseActions.java
1package org.fluentlenium.core.action;2import org.openqa.selenium.WebDriver;3import org.openqa.selenium.interactions.Coordinates;4import org.openqa.selenium.interactions.HasInputDevices;5import org.openqa.selenium.interactions.Mouse;6/**7 * Execute actions with the mouse.8 */9public class MouseActions {10 private final WebDriver driver;11 /**12 * Creates a new mouse actions.13 *14 * @param driver driver15 */16 public MouseActions(WebDriver driver) {17 this.driver = driver;18 }19 /**20 * Get the actions object.21 *22 * @return actions object23 */24 protected org.openqa.selenium.interactions.Actions actions() {25 return new org.openqa.selenium.interactions.Actions(driver);26 }27 /**28 * Basic mouse operations29 *30 * @return low level interface to control the mouse31 * @deprecated Use the following mapping for updating your code:32 * <p>33 * {@link Mouse#click(Coordinates)} to {@link MouseElementActions#click()}34 * <p>35 * {@link Mouse#doubleClick(Coordinates)} to {@link MouseElementActions#doubleClick()}36 * <p>37 * {@link Mouse#mouseDown(Coordinates)} to {@link MouseElementActions#moveToElement()}38 * then {@link MouseElementActions#clickAndHold()}39 * <p>40 * {@link Mouse#mouseUp(Coordinates)} to {@link MouseElementActions#release()}41 * <p>42 * {@link Mouse#mouseMove(Coordinates)} to {@link MouseElementActions#moveToElement()}43 * <p>44 * {@link Mouse#mouseMove(Coordinates, long, long)} to {@link MouseElementActions#moveToElement(int, int)}45 * <p>46 * {@link Mouse#contextClick(Coordinates)} to {@link MouseElementActions#contextClick()}47 */48 @Deprecated49 public Mouse basic() {50 return ((HasInputDevices) driver).getMouse();51 }52 /**53 * Clicks (without releasing) at the current mouse location.54 *55 * @return this object reference to chain calls56 * @see org.openqa.selenium.interactions.Actions#clickAndHold()57 */58 public MouseActions clickAndHold() {59 actions().clickAndHold().perform();60 return this;61 }62 /**63 * Releases the depressed left mouse button at the current mouse location.64 *65 * @return this object reference to chain calls66 * @see org.openqa.selenium.interactions.Actions#release()67 */68 public MouseActions release() {69 actions().release().perform();70 return this;71 }72 /**73 * Clicks at the current mouse location. Useful when combined with74 *75 * @return this object reference to chain calls76 * @see org.openqa.selenium.interactions.Actions#click()77 */78 public MouseActions click() {79 actions().click().perform();80 return this;81 }82 /**83 * Performs a double-click at the current mouse location.84 *85 * @return this object reference to chain calls86 */87 public MouseActions doubleClick() {88 actions().doubleClick().perform();89 return this;90 }91 /**92 * Performs a context-click at the current mouse location.93 *94 * @return this object reference to chain calls95 * @see org.openqa.selenium.interactions.Actions#contextClick()96 */97 public MouseActions contextClick() {98 actions().contextClick().perform();99 return this;100 }101 /**102 * Moves the mouse from its current position (or 0,0) by the given offset. If the coordinates103 * provided are outside the viewport (the mouse will end up outside the browser window) then104 * the viewport is scrolled to match.105 * @param xOffset horizontal offset. A negative value means moving the mouse left.106 * @param yOffset vertical offset. A negative value means moving the mouse up.107 * @return this object reference to chain calls108 * @see org.openqa.selenium.interactions.Actions#moveByOffset(int, int)109 */110 public MouseActions moveByOffset(int xOffset, int yOffset) {111 actions().moveByOffset(xOffset, yOffset).perform();112 return this;113 }114}...
Source:KeyboardActions.java
1package org.fluentlenium.core.action;2import org.openqa.selenium.Keys;3import org.openqa.selenium.WebDriver;4import org.openqa.selenium.WebElement;5import org.openqa.selenium.interactions.HasInputDevices;6import org.openqa.selenium.interactions.Keyboard;7/**8 * Execute actions with the keyboard.9 */10public class KeyboardActions {11 private final WebDriver driver;12 /**13 * Creates a new object to execute actions with the keyboard, using given selenium driver.14 *15 * @param driver selenium driver16 */17 public KeyboardActions(WebDriver driver) {18 this.driver = driver;19 }20 /**21 * Get selenium interactions actions.22 *23 * @return selenium actions24 */25 protected org.openqa.selenium.interactions.Actions actions() {26 return new org.openqa.selenium.interactions.Actions(driver);27 }28 /**29 * Basic keyboard operations30 *31 * @return low level interface to control the keyboard32 * @deprecated Use {@link KeyboardActions#keyDown(Keys)} and {@link KeyboardActions#keyUp(Keys)}33 * and {@link KeyboardActions#sendKeys(CharSequence...)} instead34 */35 @Deprecated36 public Keyboard basic() {37 return ((HasInputDevices) driver).getKeyboard();38 }39 /**40 * Performs a modifier key press. Does not release the modifier key - subsequent interactions41 * may assume it's kept pressed.42 * Note that the modifier key is <b>never</b> released implicitly - either43 * <i>keyUp(theKey)</i> or <i>sendKeys(Keys.NULL)</i>44 * must be called to release the modifier.45 *46 * @param theKey Either {@link Keys#SHIFT}, {@link Keys#ALT} or {@link Keys#CONTROL}. If the47 * provided key is none of those, {@link IllegalArgumentException} is thrown.48 * @return this object reference to chain calls49 * @see org.openqa.selenium.interactions.Actions#keyDown(CharSequence)50 */51 public KeyboardActions keyDown(Keys theKey) {52 actions().keyDown(theKey).perform();53 return this;54 }55 /**56 * Performs a modifier key release. Releasing a non-depressed modifier key will yield undefined57 * behaviour.58 *59 * @param theKey Either {@link Keys#SHIFT}, {@link Keys#ALT} or {@link Keys#CONTROL}.60 * @return this object reference to chain calls61 * @see org.openqa.selenium.interactions.Actions#keyUp(CharSequence)62 */63 public KeyboardActions keyUp(Keys theKey) {64 actions().keyUp(theKey).perform();65 return this;66 }67 /**68 * Sends keys to the active element. This differs from calling69 * {@link WebElement#sendKeys(CharSequence...)} on the active element in two ways:70 * <ul>71 * <li>The modifier keys included in this call are not released.</li>72 * <li>There is no attempt to re-focus the element - so sendKeys(Keys.TAB) for switching73 * elements should work. </li>74 * </ul>75 *76 * @param keysToSend The keys.77 * @return A self reference.78 * @see org.openqa.selenium.interactions.Actions#sendKeys(CharSequence...)79 */80 public KeyboardActions sendKeys(CharSequence... keysToSend) {81 actions().sendKeys(keysToSend).perform();82 return this;83 }84}...
Source:Browser.java
1package com.algocrafts.selenium;2import org.openqa.selenium.*;3import org.openqa.selenium.interactions.HasInputDevices;4import org.openqa.selenium.interactions.Keyboard;5import org.openqa.selenium.interactions.Mouse;6import java.util.List;7import java.util.Set;8public interface Browser<T extends WebDriver> extends Actionable<T>,9 SearchScope<Browser<T>>,10 WebDriver,11 HasInputDevices, JavascriptExecutor, HasCapabilities {12 CachedWebDriverSupplier<T> getSupplier();13 @Override14 default void onTimeout() {15 if (logger.isDebugEnabled()) {16 save(this.getTitle());17 }18 }19 @Override20 default T init() {21 return getSupplier().init();22 }23 @Deprecated24 @Override25 default Element findElement(By by) {26 return new ElementFinder(by).locate(get());27 }28 @Deprecated29 @Override30 default List<WebElement> findElements(By by) {31 return new ElementsFinder(by).locate(get());32 }33 @Override34 default void get(String url) {35 get().get(url);36 }37 @Override38 default String getCurrentUrl() {39 return get().getCurrentUrl();40 }41 @Override42 default String getTitle() {43 return get().getTitle();44 }45 @Override46 default String getPageSource() {47 return get().getPageSource();48 }49 @Override50 default Set<String> getWindowHandles() {51 return get().getWindowHandles();52 }53 @Override54 default String getWindowHandle() {55 return get().getWindowHandle();56 }57 @Override58 default TargetLocator switchTo() {59 return get().switchTo();60 }61 @Override62 default Navigation navigate() {63 return get().navigate();64 }65 @Override66 default Options manage() {67 return get().manage();68 }69 @Override70 default void close() {71 get().close();72 }73 @Override74 default void quit() {75 store.valueOf(this).quit();76 store.remove(this);77 }78 @Override79 default Keyboard getKeyboard() {80 HasInputDevices t = (HasInputDevices) get();81 return t.getKeyboard();82 }83 @Override84 default Mouse getMouse() {85 HasInputDevices t = (HasInputDevices) get();86 return t.getMouse();87 }88 @Override89 default Capabilities getCapabilities() {90 HasCapabilities hasCapabilities = (HasCapabilities) get();91 return hasCapabilities.getCapabilities();92 }93 @Override94 default Object executeScript(String script, Object... args) {95 JavascriptExecutor javascriptExecutor = (JavascriptExecutor) get();96 return javascriptExecutor.executeScript(script, args);97 }98 @Override99 default Object executeAsyncScript(String script, Object... args) {100 JavascriptExecutor javascriptExecutor = (JavascriptExecutor) get();101 return javascriptExecutor.executeAsyncScript(script, args);102 }103}...
Source:Mouse_interfaceClass.java
1package keyboard_mouse_and_touch_interfaces;23import java.util.concurrent.TimeUnit;4import org.openqa.selenium.By;5import org.openqa.selenium.WebDriver;6import org.openqa.selenium.WebElement;7import org.openqa.selenium.chrome.ChromeDriver;8import org.openqa.selenium.interactions.HasInputDevices;9import org.openqa.selenium.interactions.Locatable;10import org.openqa.selenium.interactions.Mouse;11import org.openqa.selenium.interactions.internal.Coordinates;1213public class Mouse_interfaceClass 14{1516 public static void main(String[] args) 17 {18 19 WebDriver driver=new ChromeDriver();20 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);21 driver.get("https://www.amazon.in/");22 driver.manage().window().maximize();23 24 //Enable mouse interface on automation browser25 Mouse mouse=((HasInputDevices)driver).getMouse();26 27 //Identify location before hover28 WebElement Category=driver.findElement(By.xpath("//span[contains(.,'Category')]"));29 //Get elemnet Coordinates30 Coordinates Obj_Co=((Locatable)Category).getCoordinates();31 //Peform mouse hover action on location32 mouse.mouseMove(Obj_Co);33 34 35 //Identify location36 WebElement Mobiles=driver.findElement(By.xpath("//span[text()='Mobiles, Computers']"));37 //hover on location38 mouse.mouseMove(((Locatable)Mobiles).getCoordinates());39 40 //Target location41 WebElement Laptops=driver.findElement(By.xpath("//span[contains(.,'Laptops')]"));42 mouse.click(((Locatable)Laptops).getCoordinates());43 }4445}
...
Source:Mouse_Hover.java
1package mouse_Actions;23import org.openqa.selenium.By;4import org.openqa.selenium.WebDriver;5import org.openqa.selenium.WebElement;6import org.openqa.selenium.chrome.ChromeDriver;7import org.openqa.selenium.interactions.HasInputDevices;8import org.openqa.selenium.interactions.Locatable;9import org.openqa.selenium.interactions.Mouse;10import org.openqa.selenium.interactions.internal.Coordinates;1112public class Mouse_Hover 13{1415 public static void main(String[] args) throws Exception 16 {17 WebDriver driver=new ChromeDriver();18 driver.get("https://www.hdfcbank.com/");19 driver.manage().window().maximize();20 21 22 //Enable MouseInterface class controls on browser23 Mouse mouse=((HasInputDevices)driver).getMouse();24 25 //Identify Target26 WebElement Products=driver.findElement(By.linkText("Products"));27 //Get element coordinate using locatable class28 Coordinates Products_Co=((Locatable)Products).getCoordinates();29 mouse.mouseMove(Products_Co);30 Thread.sleep(5000);31 32 //Identify Target33 WebElement Loan=driver.findElement(By.linkText("Loans"));34 //Get element coordinate using locatable class35 Coordinates Loan_Co=((Locatable)Loan).getCoordinates(); 36 mouse.mouseMove(Loan_Co);37 Thread.sleep(5000);38 39 WebElement Personal_Loan=driver.findElement(By.linkText("Personal Loan"));40 Coordinates Personal_Loan_co=((Locatable)Personal_Loan).getCoordinates();41 42 mouse.click(Personal_Loan_co);43 44 driver.close();4546 }4748}
...
Source:Interaction.java
1package org.primitive.webdriverencapsulations.components.bydefault;23import org.openqa.selenium.WebDriver;4import org.openqa.selenium.interactions.HasInputDevices;5import org.openqa.selenium.interactions.HasTouchScreen;67public abstract class Interaction extends WebdriverInterfaceImplementor implements HasInputDevices, HasTouchScreen {89 public Interaction(WebDriver driver) {10 super(driver);11 delegate = this.driver;12 }13}
...
Interface HasInputDevices
Using AI Code Generation
1package com.selenium4beginners.java.touchactions;2import org.openqa.selenium.By;3import org.openqa.selenium.WebElement;4import org.openqa.selenium.interactions.HasInputDevices;5import org.openqa.selenium.interactions.HasTouchScreen;6import org.openqa.selenium.interactions.MultiTouchAction;7import org.openqa.selenium.interactions.TouchAction;8import org.openqa.selenium.interactions.TouchActions;9import org.openqa.selenium.interactions.TouchScreen;10import org.openqa.selenium.remote.RemoteTouchScreen;11import org.openqa.selenium.support.ui.ExpectedConditions;12import org.openqa.selenium.support.ui.WebDriverWait;13import com.selenium4beginners.java.common.DriverFactory;14public class TouchActionsExample extends DriverFactory {15 public static void main(String[] args) {16 driver.findElement(By.id("btn_basic_example")).click();17 WebDriverWait wait = new WebDriverWait(driver, 20);18 TouchScreen touchScreen = ((HasTouchScreen) driver).getTouch();19 TouchActions touchActions = new TouchActions(touchScreen);20 touchActions.singleTap(datePickersLink).perform();21 touchActions.singleTap(bootstrapDatePickersLink).perform();22 dateTextBox.click();
Interface HasInputDevices
Using AI Code Generation
1package com.packt.webdriver.chapter2;2import java.util.List;3import org.openqa.selenium.By;4import org.openqa.selenium.WebDriver;5import org.openqa.selenium.WebElement;6import org.openqa.selenium.firefox.FirefoxDriver;7import org.openqa.selenium.interactions.Actions;8import org.openqa.selenium.interactions.HasInputDevices;9public class MouseOver {10 public static void main(String[] args){11 WebDriver driver = new FirefoxDriver();12 Actions builder = new Actions(driver);13 WebElement element = driver.findElement(By.id("menu-item-1978"));14 builder.moveToElement(element).build().perform();15 System.out.println("Number of submenus in the menu are "+subElement.size());16 for(WebElement we:subElement){17 System.out.println(we.getText());18 }19 }20}21package com.packt.webdriver.chapter2;22import java.util.List;23import org.openqa.selenium.By;24import org.openqa.selenium.WebDriver;25import org.openqa.selenium.WebElement;26import org.openqa.selenium.firefox.FirefoxDriver;27import org.openqa.selenium.interactions.Actions;28import org.openqa.selenium.interactions.HasTouchScreen;29import org.openqa.selenium.interactions.TouchScreen;30import org.openqa.selenium.interactions.touch.TouchActions;31public class TouchExample {32 public static void main(String[] args){33 WebDriver driver = new FirefoxDriver();34 TouchScreen touchScreen = ((HasTouchScreen)driver).getTouch();35 TouchActions touchAction = new TouchActions(touchScreen);36 WebElement element = driver.findElement(By.id("menu-item-1978"));37 touchAction.singleTap(element).perform();38 System.out.println("Number of submenus in the menu are "+subElement.size());39 for(WebElement we:subElement){40 System.out.println(we.getText());41 }42 }43}
Interface HasInputDevices
Using AI Code Generation
11. import org.openqa.selenium.interactions.HasInputDevices;22. import org.openqa.selenium.interactions.Keyboard;33. import org.openqa.selenium.interactions.Mouse;44. import org.openqa.selenium.interactions.Actions;55. HasInputDevices hasInputDevices = (HasInputDevices) driver;66. Mouse mouse = hasInputDevices.getMouse();77. Keyboard keyboard = hasInputDevices.getKeyboard();88. Actions actions = new Actions(driver);99. actions.clickAndHold(element);1010. actions.keyDown(Keys.CONTROL);1111. actions.sendKeys("a");1212. actions.keyUp(Keys.CONTROL);1313. actions.sendKeys("t");1414. actions.build().perform();1515. actions.clickAndHold(element);1616. actions.sendKeys("a");1717. actions.sendKeys("t");1818. actions.build().perform();1919. mouse.mouseDown(element);2020. keyboard.sendKeys("a");2121. keyboard.sendKeys("t");2222. mouse.mouseUp(element);2323. mouse.mouseDown(element);2424. keyboard.sendKeys("a");2525. keyboard.sendKeys("t");2626. mouse.mouseUp(element);2727. mouse.mouseDown(element);2828. keyboard.sendKeys("a");2929. keyboard.sendKeys("t");3030. mouse.mouseUp(element);3131. mouse.mouseDown(element);3232. keyboard.sendKeys("a");3333. keyboard.sendKeys("t");3434. mouse.mouseUp(element);3535. mouse.mouseDown(element);3636. keyboard.sendKeys("a");3737. keyboard.sendKeys("t");3838. mouse.mouseUp(element);3939. mouse.mouseDown(element);4040. keyboard.sendKeys("a");4141. keyboard.sendKeys("t");4242. mouse.mouseUp(element);4343. mouse.mouseDown(element);4444. keyboard.sendKeys("a");4545. keyboard.sendKeys("t");4646. mouse.mouseUp(element);4747. mouse.mouseDown(element);4848. keyboard.sendKeys("a");4949. keyboard.sendKeys("t");5050. mouse.mouseUp(element);5151. mouse.mouseDown(element);5252. keyboard.sendKeys("a");5353. keyboard.sendKeys("t");5454. mouse.mouseUp(element);5555. mouse.mouseDown(element);5656. keyboard.sendKeys("a");5757. keyboard.sendKeys("t");5858. mouse.mouseUp(element);5959. mouse.mouseDown(element);6060. keyboard.sendKeys("a");6161. keyboard.sendKeys("t");6262. mouse.mouseUp(element);6363. mouse.mouseDown(element);6464. keyboard.sendKeys("a");6565. keyboard.sendKeys("t");
Interface HasInputDevices
Using AI Code Generation
1import org.openqa.selenium.interactions.HasInputDevices;2import org.openqa.selenium.interactions.Keyboard;3import org.openqa.selenium.interactions.Mouse;4import org.openqa.selenium.interactions.Action;5import org.openqa.selenium.interactions.Actions;6import org.openqa.selenium.interactions.Coordinates;7import org.openqa.selenium.interactions.Locatable;8import org.openqa.selenium.interactions.PointerInput;9import org.openqa.selenium.interactions.PointerInput.Kind;10import org.openqa.selenium.interactions.PointerInput.MouseButton;11import org.openqa.selenium.interactions.Sequence;12import org.openqa.selenium.interactions.TouchScreen;13import org.openqa.selenium.interactions.internal.Coordinates;14import org.openqa.selenium.interactions.internal.Locatable;15import org.openqa.selenium.interactions.internal.MouseAction;16import org.openqa.selenium.interactions.internal.TouchAction;17import org.openqa.selenium.interactions.internal.TouchScreenAction;18import org.openqa.selenium.internal.Locatable;19import org.openqa.selenium.remote.RemoteTouchScreen;20import org.openqa.selenium.remote.RemoteWebElement;21import org.openqa.selenium.remote.RemoteWebDriver;22import org.openqa.selenium.remote.RemoteWebElement;23import org.openqa.selenium.remote.internal.WebElementToJsonConverter;24import org.openqa.selenium.support.ui.WebDriverWait;25import org.openqa.selenium.support.ui.ExpectedConditions;26import org.openqa.selenium.support.ui.ExpectedCondition;27import org.openqa.selenium.support.ui.Select;28import org.openqa.selenium.support.ui.FluentWait;29import org.openqa.selenium.support.ui.Wait;30import org.openqa.selenium.support.ui.Sleeper;31import org.openqa.selenium.support.ui.SystemClock;32import org.openqa.selenium.support.ui.Clock;33import org.openqa.selenium.support.ui.FluentWait;34import org.openqa.selenium.support.ui.Wait;35import org.openqa.selenium.support.ui.SystemClock;36import org.openqa.selenium.support.ui.Clock;37import org.openqa.selenium.support.ui.FluentWait;38import org.openqa.selenium.support.ui.Wait;39import org.openqa.selenium.support.ui.SystemClock;40import org.openqa.selenium.support.ui.Clock;41import org.openqa.selenium.support.ui.FluentWait;42import org.openqa.selenium.support.ui.Wait;43import org.openqa.selenium.support.ui.SystemClock;44import org.openqa.selenium.support.ui.Clock;45import org.openqa.selenium.support.ui.FluentWait;46import org.openqa.selenium.support.ui.Wait;47import org.openqa.selenium.support.ui.SystemClock;48import org.openqa.selenium.support.ui.Clock;49import org.openqa.selenium.support.ui.FluentWait;50import org.openqa.selenium.support.ui.Wait;51import org.openqa.selenium.support.ui.SystemClock;52import org.openqa.selenium.support.ui.Clock;53import org.openqa.selenium.support.ui.FluentWait;
Interface HasInputDevices
Using AI Code Generation
1interface HasInputDevices {2 Keyboard getKeyboard();3 Mouse getMouse();4}5class Keyboard {6 void sendKeys(CharSequence... keysToSend);7 void pressKey(CharSequence keyToPress);8 void releaseKey(CharSequence keyToRelease);9}10class Mouse {11 void click(Coordinates where);12 void doubleClick(Coordinates where);13 void mouseDown(Coordinates where);14 void mouseUp(Coordinates where);15 void mouseMove(Coordinates where);16 void mouseMove(Coordinates where, long xOffset, long yOffset);17 void contextClick(Coordinates where);18}19class Coordinates {20 Point onScreen();21 Point inViewPort();22 Point onPage();
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!!