How to use findElement method of org.openqa.selenium.remote.RemoteWebElement class

Best Selenium code snippet using org.openqa.selenium.remote.RemoteWebElement.findElement

Source:pureElement.java Github

copy

Full Screen

...22 public String refrehCode = null; // Last logcat when refreshed ( used with refreshMethod = 2)23 public pureDriverDetails driverToUse = null; // Store the currentDriver when object is created so it's the driver that will be used for detection/discover/update24 public Object theElement = null; // The xElement (Web/Mobile/Android/IOS)25 26 public pureElement parent = null; // Used from pureElement.findElement when "Maintain real hierarchy" is set27 public int driverLink = -1; // if > -1 then represents the Id of the pureDriverDetails the object is linked to28 29 public pureElement( String elName, String elType, int elMethod, String elPath, int elRefreshMode, pureElement parent, int driverLink ) {30 this.eName = elName;31 this.eType = elType;32 this.ePath = elPath;33 this.eMethod = elMethod;34 this.refreshMethod = elRefreshMode;35 this.refrehCode = null;36 this.parent = parent;37 if ( driverLink > -1 ) {38 this.driverToUse = pureDrivers.getDriverDetails( driverLink );39 }else {40 this.driverToUse = null;41 }42 this.driverLink = driverLink;43 }44 public pureElement( String elName, String elType, int elMethod, String elPath, int elRefreshMode, pureElement parent ) {45 this.eName = elName;46 this.eType = elType;47 this.ePath = elPath;48 this.eMethod = elMethod;49 this.refreshMethod = elRefreshMode;50 this.refrehCode = null;51 this.parent = parent;52 this.driverToUse = null;53 this.driverLink = -1;54 }55 public pureElement( String elName, String elType, int elMethod, String elPath, int elRefreshMode ) {56 this.eName = elName;57 this.eType = elType;58 this.ePath = elPath;59 this.eMethod = elMethod;60 this.refreshMethod = elRefreshMode;61 this.refrehCode = null;62 this.parent = null;63 this.driverToUse = null;64 this.driverLink = -1;65 }66 67 public void setName( String newName ) {68 this.eName = newName;69 }70 public String getName() {71 return this.eName;72 }73 74 public void setType( String newType ) {75 this.eType = newType;76 }77 78 public String getType() {79 return this.eType;80 }81 82 public void setMethod( int newMethod ) {83 this.eMethod = newMethod;84 this.theElement = null;85 }86 87 public int getMethod() {88 return this.eMethod;89 }90 91 public void setPath( String newPath ) {92 this.ePath = newPath;93 this.theElement = null;94 }95 96 public String getPath() {97 return this.ePath;98 }99 100 public void setBy( int newMethod, String newPath ) {101 this.eMethod = newMethod;102 this.ePath = newPath;103 this.theElement = null;104 }105 public void setRefreshMode( int newRMode ) {106 this.refreshMethod = newRMode;107 }108 109 public int getRefreshMode() {110 return this.refreshMethod;111 }112 113 public void pureDriverDetailsToLink( pureDriverDetails newDriverToUse ) {114 this.driverToUse = newDriverToUse;115 this.driverLink = pureDrivers.getDriverDetailsID( newDriverToUse );116 }117 public int getDriverID() {118 return this.driverLink;119 }120 public Object getElement() {121 return this.theElement;122 }123 124 public void clearElement() {125 this.theElement = null;126 }127 128 129 // ************************************************************************************************************************ clear130 // WebElement [0] = public abstract void org.openqa.selenium.WebElement.clear()131 // AndroidElement [31] = public void org.openqa.selenium.remote.RemoteWebElement.clear()132 // IOSElement [30] = public void org.openqa.selenium.remote.RemoteWebElement.clear()133 // MobileElement [30] = public void org.openqa.selenium.remote.RemoteWebElement.clear()134 public void clear() {135 this.refresh(); // Method to detect, update and centre the object on screen if existing.136 this.centerOnScreen(); // Method to put object in center of the screen if partially or not visible137 this.pureElementMethodCall( "clear" );138 }139 // ************************************************************************************************************************ clear140 // WebElement [1] = public abstract org.openqa.selenium.Point org.openqa.selenium.WebElement.getLocation()141 // AndroidElement [32] = public org.openqa.selenium.Point org.openqa.selenium.remote.RemoteWebElement.getLocation()142 // IOSElement [31] = public org.openqa.selenium.Point org.openqa.selenium.remote.RemoteWebElement.getLocation()143 // MobileElement [31] = public org.openqa.selenium.Point org.openqa.selenium.remote.RemoteWebElement.getLocation()144 public org.openqa.selenium.Point getLocation(){145 this.refresh(); // Method to detect, update and centre the object on screen if existing.146 return ( org.openqa.selenium.Point )this.pureElementMethodCall( "getLocation" );147 }148 // ************************************************************************************************************************ clear149 // WebElement [2] = public abstract org.openqa.selenium.Dimension org.openqa.selenium.WebElement.getSize()150 // AndroidElement [34] = public org.openqa.selenium.Dimension org.openqa.selenium.remote.RemoteWebElement.getSize()151 // IOSElement [33] = public org.openqa.selenium.Dimension org.openqa.selenium.remote.RemoteWebElement.getSize()152 // MobileElement [33] = public org.openqa.selenium.Dimension org.openqa.selenium.remote.RemoteWebElement.getSize()153 public org.openqa.selenium.Dimension getSize(){154 this.refresh(); // Method to detect, update and centre the object on screen if existing.155 return ( org.openqa.selenium.Dimension )this.pureElementMethodCall( "getSize" );156 }157 // ************************************************************************************************************************ clear158 // WebElement [3] = public abstract org.openqa.selenium.WebElement org.openqa.selenium.WebElement.findElement(org.openqa.selenium.By)159 // AndroidElement [2] = public org.openqa.selenium.WebElement io.appium.java_client.android.AndroidElement.findElement(org.openqa.selenium.By)160 // IOSElement [3] = public org.openqa.selenium.WebElement io.appium.java_client.ios.IOSElement.findElement(org.openqa.selenium.By)161 // MobileElement [5] = public java.util.List io.appium.java_client.MobileElement.findElements(org.openqa.selenium.By)162 public pureElement findElement( Object by ){163 this.refresh(); // Method to detect, update and centre the object on screen if existing.164 Object SourceObject = this.pureElementMethodCall( "findElement", by );165 if ( SourceObject != null ) {166 pureCore.peMethod myMethod = pureCore.peMethodFromBy( by.toString() );167 pureElement newPureElement = new pureElement( "The Name", "The Type", myMethod.peMethodid, myMethod.peSearch, pureCore.defRefreshMode, this );168 newPureElement.theElement = SourceObject;169 newPureElement.refrehCode = "0xFFFFFFFF";170 return newPureElement;171 }else {172 return null;173 } 174 }175 // ************************************************************************************************************************ clear176 // WebElement [4] = public abstract java.util.List org.openqa.selenium.WebElement.findElements(org.openqa.selenium.By)177 // AndroidElement [16] = public java.util.List io.appium.java_client.MobileElement.findElements(org.openqa.selenium.By)178 // IOSElement [15] = public java.util.List io.appium.java_client.MobileElement.findElements(org.openqa.selenium.By)179 // MobileElement [4] = public org.openqa.selenium.WebElement io.appium.java_client.MobileElement.findElement(org.openqa.selenium.By)180 public pureElements findElements( Object by ){181 this.refresh(); // Method to detect, update and centre the object on screen if existing.182 Object feedback = this.pureElementMethodCall( "findElements", by );183 List<Object> myObjectList = pureCore.CastObjecttoList( feedback );184 if ( myObjectList != null ) {185 pureCore.peMethod myMethod = pureCore.peMethodFromBy( by.toString() );186 pureElements newPureElements = new pureElements( "-", "-", myMethod.peMethodid, myMethod.peSearch, pureCore.defRefreshMode, this );187 newPureElements.theElements = myObjectList;188 newPureElements.refrehCode = "0xFFFFFFFF";189 return newPureElements;190 }else {191 return null;192 }193 }194 195 // ************************************************************************************************************************ clear196 // WebElement [5] = public abstract void org.openqa.selenium.WebElement.click()197 // AndroidElement [38] = public void org.openqa.selenium.remote.RemoteWebElement.click()198 // IOSElement [37] = public void org.openqa.selenium.remote.RemoteWebElement.click()199 // MobileElement [37] = public void org.openqa.selenium.remote.RemoteWebElement.click()200 public void click() {201 this.refresh(); // Method to detect, update and centre the object on screen if existing.202 // this.centerOnScreen(); // Method to put object in center of the screen if partially or not visible203 this.pureElementMethodCall( "click" );204 }205 206 // ************************************************************************************************************************ clear207 // WebElement [6] = public abstract void org.openqa.selenium.WebElement.sendKeys(java.lang.CharSequence[])208 // AndroidElement [39] = public void org.openqa.selenium.remote.RemoteWebElement.sendKeys(java.lang.CharSequence[])209 // IOSElement [38] = public void org.openqa.selenium.remote.RemoteWebElement.sendKeys(java.lang.CharSequence[])210 // MobileElement [38] = public void org.openqa.selenium.remote.RemoteWebElement.sendKeys(java.lang.CharSequence[])211 public void sendKeys( String charSequence ) {212 this.refresh(); // Method to detect, update and centre the object on screen if existing.213 this.centerOnScreen(); // Method to put object in center of the screen if partially or not visible214 pureDriverDetails myDriver = pureDrivers.getCurrentDriverDetails();215 java.lang.CharSequence mySequency[] = new java.lang.CharSequence[ charSequence.length() ];216 for( int iLoop = 0; iLoop < charSequence.length(); iLoop++ ) {217 mySequency[ iLoop ] = charSequence.substring( iLoop, iLoop +1 );218 }219 pureCore.callMethod( this.theElement, myDriver.elementClass, "sendKeys", java.lang.CharSequence[].class, "pureElement.sendKeys", mySequency );220 }221 // ************************************************************************************************************************ clear222 // WebElement [7] = public abstract void org.openqa.selenium.WebElement.submit()223 // AndroidElement [12] = public void io.appium.java_client.android.AndroidElement.submit() throws org.openqa.selenium.WebDriverException224 // IOSElement [12] = public void io.appium.java_client.ios.IOSElement.submit() throws org.openqa.selenium.WebDriverException225 // MobileElement [23] = public void io.appium.java_client.MobileElement.submit() throws org.openqa.selenium.WebDriverException226 public void submit() {227 this.refresh(); // Method to detect, update and centre the object on screen if existing.228 this.centerOnScreen(); // Method to put object in center of the screen if partially or not visible229 this.pureElementMethodCall( "submit" );230 }231 232 // ************************************************************************************************************************ clear233 // WebElement [8] = public abstract java.lang.String org.openqa.selenium.WebElement.getTagName()234 // AndroidElement [40] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.getTagName()235 // IOSElement [39] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.getTagName()236 // MobileElement [39] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.getTagName()237 public String getTagName() {238 this.refresh(); // Method to detect, update and centre the object on screen if existing.239 return (String)this.pureElementMethodCall( "getTagName" );240 }241 242 // ************************************************************************************************************************ clear243 // WebElement [9] = public abstract java.lang.String org.openqa.selenium.WebElement.getAttribute(java.lang.String)244 // AndroidElement [41] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.getAttribute(java.lang.String)245 // IOSElement [40] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.getAttribute(java.lang.String)246 // MobileElement [40] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.getAttribute(java.lang.String)247 public String getAttribute( String AttributeName ) {248 this.refresh(); // Method to detect, update and centre the object on screen if existing.249 return (String)this.pureElementMethodCall( "getAttribute", (Object)AttributeName );250 }251 252 // ************************************************************************************************************************ clear253 // WebElement [10] = public abstract boolean org.openqa.selenium.WebElement.isSelected()254 // AndroidElement [42] = public boolean org.openqa.selenium.remote.RemoteWebElement.isSelected()255 // IOSElement [41] = public boolean org.openqa.selenium.remote.RemoteWebElement.isSelected()256 // MobileElement [41] = public boolean org.openqa.selenium.remote.RemoteWebElement.isSelected()257 public boolean isSelected() {258 this.refresh();259 return (boolean)this.pureElementMethodCall( "isSelected" );260 }261 262 // ************************************************************************************************************************ clear263 // WebElement [11] = public abstract boolean org.openqa.selenium.WebElement.isEnabled()264 // AndroidElement [43] = public boolean org.openqa.selenium.remote.RemoteWebElement.isEnabled()265 // IOSElement [42] = public boolean org.openqa.selenium.remote.RemoteWebElement.isEnabled()266 // MobileElement [42] = public boolean org.openqa.selenium.remote.RemoteWebElement.isEnabled()267 public boolean isEnabled() {268 this.refresh();269 return (boolean)this.pureElementMethodCall( "isEnabled" );270 }271 272 // ************************************************************************************************************************ clear273 // WebElement [12] = public abstract java.lang.String org.openqa.selenium.WebElement.getText()274 // AndroidElement [44] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.getText()275 // IOSElement [43] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.getText()276 // MobileElement [43] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.getText()277 public String getText() {278 this.refresh();279 return (String)this.pureElementMethodCall( "getText" );280 }281 282 // ************************************************************************************************************************ clear283 // WebElement [13] = public abstract boolean org.openqa.selenium.WebElement.isDisplayed()284 // AndroidElement [45] = public boolean org.openqa.selenium.remote.RemoteWebElement.isDisplayed()285 // IOSElement [44] = public boolean org.openqa.selenium.remote.RemoteWebElement.isDisplayed()286 // MobileElement [44] = public boolean org.openqa.selenium.remote.RemoteWebElement.isDisplayed()287 public boolean isDisplayed() {288 this.refresh();289 return (boolean)this.pureElementMethodCall( "isDisplayed" );290 }291 // ************************************************************************************************************************ clear292 // WebElement [14] = public abstract org.openqa.selenium.Rectangle org.openqa.selenium.WebElement.getRect()293 // AndroidElement [46] = public org.openqa.selenium.Rectangle org.openqa.selenium.remote.RemoteWebElement.getRect()294 // IOSElement [45] = public org.openqa.selenium.Rectangle org.openqa.selenium.remote.RemoteWebElement.getRect()295 // MobileElement [45] = public org.openqa.selenium.Rectangle org.openqa.selenium.remote.RemoteWebElement.getRect()296 public org.openqa.selenium.Rectangle getRect() {297 this.refresh();298 return (org.openqa.selenium.Rectangle)this.pureElementMethodCall( "getRect" );299 }300 // ************************************************************************************************************************ clear301 // WebElement [15] = public abstract java.lang.String org.openqa.selenium.WebElement.getCssValue(java.lang.String)302 // AndroidElement [13] = public java.lang.String io.appium.java_client.android.AndroidElement.getCssValue(java.lang.String) throws org.openqa.selenium.WebDriverException303 // IOSElement [13] = public java.lang.String io.appium.java_client.ios.IOSElement.getCssValue(java.lang.String) throws org.openqa.selenium.WebDriverException304 // MobileElement [24] = public java.lang.String io.appium.java_client.MobileElement.getCssValue(java.lang.String) throws org.openqa.selenium.WebDriverException305 public String getCssValue( String cssValue ) {306 this.refresh();307 return (String)this.pureElementMethodCall( "getCssValue", (Object) cssValue );308 }309 // ************************************************************************************************************************ clear310 // WebElement [16] = public abstract java.lang.Object org.openqa.selenium.TakesScreenshot.getScreenshotAs(org.openqa.selenium.OutputType) throws org.openqa.selenium.WebDriverException311 // AndroidElement [37] = public java.lang.Object org.openqa.selenium.remote.RemoteWebElement.getScreenshotAs(org.openqa.selenium.OutputType) throws org.openqa.selenium.WebDriverException312 // IOSElement [36] = public java.lang.Object org.openqa.selenium.remote.RemoteWebElement.getScreenshotAs(org.openqa.selenium.OutputType) throws org.openqa.selenium.WebDriverException313 // MobileElement [36] = public java.lang.Object org.openqa.selenium.remote.RemoteWebElement.getScreenshotAs(org.openqa.selenium.OutputType) throws org.openqa.selenium.WebDriverException314 public Object getScreenshotAs( org.openqa.selenium.OutputType<?> outputType ) {315 this.refresh();316 this.centerOnScreen(); // Method to put object in center of the screen if partially or not visible317 return this.pureElementMethodCall( "getScreenshotAs", (Object) outputType );318 }319 // ************************************************************************************************************************ 320 // AndroidElement [0] = public org.openqa.selenium.remote.Response io.appium.java_client.android.AndroidElement.execute(java.lang.String,java.util.Map)321 // IOSElement [0] = public org.openqa.selenium.remote.Response io.appium.java_client.ios.IOSElement.execute(java.lang.String,java.util.Map)322 // MobileElement [1] = public org.openqa.selenium.remote.Response io.appium.java_client.MobileElement.execute(java.lang.String,java.util.Map)323 public org.openqa.selenium.remote.Response execute( java.lang.String execute, java.util.Map<?,?> map ){324 this.refresh();325 this.centerOnScreen(); // Method to put object in center of the screen if partially or not visible326 pureDriverDetails myDriver = pureDrivers.getCurrentDriverDetails();327 //328 Class<?>[] myClasses = new Class[2];329 myClasses[ 0 ] = java.lang.String.class;330 myClasses[ 1 ] = java.util.Map.class;331 //332 Object[] myTrueParam = new Object[2];333 myTrueParam[ 0 ] = (Object)execute;334 myTrueParam[ 1 ] = (Object)map;335 //336 return (org.openqa.selenium.remote.Response)pureCore.callMethod(337 this.theElement, myDriver.elementClass, "execute", myClasses, "pureElement.execute", myTrueParam );338 }339 // ************************************************************************************************************************ 340 // AndroidElement [1] = public org.openqa.selenium.remote.Response io.appium.java_client.android.AndroidElement.execute(java.lang.String)341 // IOSElement [1] = public org.openqa.selenium.remote.Response io.appium.java_client.ios.IOSElement.execute(java.lang.String)342 // MobileElement [0] = public org.openqa.selenium.remote.Response io.appium.java_client.MobileElement.execute(java.lang.String)343 public org.openqa.selenium.remote.Response execute( java.lang.String execute ){344 this.refresh();345 this.centerOnScreen(); // Method to put object in center of the screen if partially or not visible346 pureDriverDetails myDriver = pureDrivers.getCurrentDriverDetails();347 return (org.openqa.selenium.remote.Response)pureCore.callMethod(348 this.theElement, myDriver.elementClass, "execute", java.lang.String.class, "pureElement.execute", execute );349 }350 351 // ************************************************************************************************************************ 352 // AndroidElement [3] = public org.openqa.selenium.WebElement io.appium.java_client.android.AndroidElement.findElement(java.lang.String,java.lang.String)353 // IOSElement [2] = public org.openqa.selenium.WebElement io.appium.java_client.ios.IOSElement.findElement(java.lang.String,java.lang.String)354 // MobileElement [3] = public org.openqa.selenium.WebElement io.appium.java_client.MobileElement.findElement(java.lang.String,java.lang.String)355 public pureElement findElement( String method, String path ){356 this.refresh(); // Method to detect, update and centre the object on screen if existing.357 pureDriverDetails myDriver = pureDrivers.getCurrentDriverDetails();358 //359 Class<?>[] myClasses = new Class[2];360 myClasses[ 0 ] = java.lang.String.class;361 myClasses[ 1 ] = java.lang.String.class;362 //363 Object[] myTrueParam = new Object[2];364 myTrueParam[ 0 ] = (Object)method;365 myTrueParam[ 1 ] = (Object)path;366 //367 Object SourceObject = (Object)pureCore.callMethod( this.theElement, myDriver.elementClass, "findElement", myClasses, "pureElement.findElement", myTrueParam );368 if ( SourceObject != null ) {369 int elemMethod = pureCore.MethodFromStringLocator( method );370 pureElement newPureElement = new pureElement( "The Name", "The Type", elemMethod, path, pureCore.defRefreshMode, this );371 newPureElement.theElement = SourceObject;372 newPureElement.refrehCode = "0xFFFFFFFF";373 return newPureElement;374 }else {375 return null;376 } 377 }378 379 // ************************************************************************************************************************ 380 // Internal optimisation for following findElement methods.381 private pureElement intFindElementXXX( String MethodName, int elementMethod, String Description ) {382 this.refresh();383 Object SourceObject = (Object) this.pureElementMethodCall( MethodName, (Object)Description );384 if ( SourceObject != null ) {385 pureElement newPureElement = new pureElement( "The Name", "The Type", elementMethod, Description, pureCore.defRefreshMode, this );386 newPureElement.theElement = SourceObject;387 newPureElement.refrehCode = "0xFFFFFFFF";388 return newPureElement;389 }else {390 return (pureElement)null;391 } 392 } 393 394 // ************************************************************************************************************************ 395 // AndroidElement [4] = public org.openqa.selenium.WebElement io.appium.java_client.android.AndroidElement.findElementByLinkText(java.lang.String) throws org.openqa.selenium.WebDriverException396 // IOSElement [4] = public org.openqa.selenium.WebElement io.appium.java_client.ios.IOSElement.findElementByLinkText(java.lang.String) throws org.openqa.selenium.WebDriverException397 // MobileElement [7] = public org.openqa.selenium.WebElement io.appium.java_client.MobileElement.findElementByLinkText(java.lang.String) throws org.openqa.selenium.WebDriverException398 public pureElement findElementByLinkText( String Description ){399 return this.intFindElementXXX( "findElementByLinkText", pureCore.elementMethod.linkText, Description );400 }401 // ************************************************************************************************************************ 402 // AndroidElement [5] = public org.openqa.selenium.WebElement io.appium.java_client.android.AndroidElement.findElementByPartialLinkText(java.lang.String) throws org.openqa.selenium.WebDriverException403 // IOSElement [5] = public org.openqa.selenium.WebElement io.appium.java_client.ios.IOSElement.findElementByPartialLinkText(java.lang.String) throws org.openqa.selenium.WebDriverException404 // MobileElement [8] = public org.openqa.selenium.WebElement io.appium.java_client.MobileElement.findElementByPartialLinkText(java.lang.String) throws org.openqa.selenium.WebDriverException405 public pureElement findElementByPartialLinkText( String Description ){406 return this.intFindElementXXX( "findElementByPartialLinkText", pureCore.elementMethod.partialLinkText, Description );407 }408 409 // ************************************************************************************************************************ 410 // AndroidElement [6] = public org.openqa.selenium.WebElement io.appium.java_client.android.AndroidElement.findElementByTagName(java.lang.String)411 // IOSElement [6] = public org.openqa.selenium.WebElement io.appium.java_client.ios.IOSElement.findElementByTagName(java.lang.String)412 // MobileElement [9] = public org.openqa.selenium.WebElement io.appium.java_client.MobileElement.findElementByTagName(java.lang.String)413 public pureElement findElementByTagName( String Description ){414 return this.intFindElementXXX( "findElementByTagName", pureCore.elementMethod.tagNamei, Description );415 }416 417 // ************************************************************************************************************************ 418 // AndroidElement [7] = public org.openqa.selenium.WebElement io.appium.java_client.android.AndroidElement.findElementByName(java.lang.String)419 // IOSElement [7] = public org.openqa.selenium.WebElement io.appium.java_client.ios.IOSElement.findElementByName(java.lang.String)420 // MobileElement [10] = public org.openqa.selenium.WebElement io.appium.java_client.MobileElement.findElementByName(java.lang.String)421 public pureElement findElementByName( String Description ){422 return this.intFindElementXXX( "findElementByName", pureCore.elementMethod.name, Description );423 }424 425 // ************************************************************************************************************************ 426 // AndroidElement [8] = public org.openqa.selenium.WebElement io.appium.java_client.android.AndroidElement.findElementByClassName(java.lang.String)427 // IOSElement [8] = public org.openqa.selenium.WebElement io.appium.java_client.ios.IOSElement.findElementByClassName(java.lang.String)428 // MobileElement [11] = public org.openqa.selenium.WebElement io.appium.java_client.MobileElement.findElementByClassName(java.lang.String)429 public pureElement findElementByClassName( String Description ){430 return this.intFindElementXXX( "findElementByClassName", pureCore.elementMethod.className, Description );431 }432 433 // ************************************************************************************************************************ 434 // AndroidElement [9] = public org.openqa.selenium.WebElement io.appium.java_client.android.AndroidElement.findElementByCssSelector(java.lang.String) throws org.openqa.selenium.WebDriverException435 // IOSElement [9] = public org.openqa.selenium.WebElement io.appium.java_client.ios.IOSElement.findElementByCssSelector(java.lang.String) throws org.openqa.selenium.WebDriverException436 // MobileElement [12] = public org.openqa.selenium.WebElement io.appium.java_client.MobileElement.findElementByCssSelector(java.lang.String) throws org.openqa.selenium.WebDriverException437 public pureElement findElementByCssSelector( String Description ){438 return this.intFindElementXXX( "findElementByCssSelector", pureCore.elementMethod.cssSelector, Description );439 }440 441 // ************************************************************************************************************************ 442 // AndroidElement [10] = public org.openqa.selenium.WebElement io.appium.java_client.android.AndroidElement.findElementByXPath(java.lang.String)443 // IOSElement [10] = public org.openqa.selenium.WebElement io.appium.java_client.ios.IOSElement.findElementByXPath(java.lang.String)444 // MobileElement [13] = public org.openqa.selenium.WebElement io.appium.java_client.MobileElement.findElementByXPath(java.lang.String)445 public pureElement findElementByXPath( String Description ){446 return this.intFindElementXXX( "findElementByXPath", pureCore.elementMethod.xpath, Description );447 }448 449 // ************************************************************************************************************************ 450 // AndroidElement [11] = public org.openqa.selenium.WebElement io.appium.java_client.android.AndroidElement.findElementById(java.lang.String)451 // IOSElement [11] = public org.openqa.selenium.WebElement io.appium.java_client.ios.IOSElement.findElementById(java.lang.String)452 // MobileElement [21] = public org.openqa.selenium.WebElement io.appium.java_client.MobileElement.findElementById(java.lang.String)453 public pureElement findElementById( String Description ){454 return this.intFindElementXXX( "findElementById", pureCore.elementMethod.id, Description );455 }456 457 // ************************************************************************************************************************ 458 // AndroidElement [14] = public void io.appium.java_client.android.AndroidElement.replaceValue(java.lang.String)459 public void replaceValue( java.lang.String value ) {460 this.refresh();461 this.centerOnScreen(); // Method to put object in center of the screen if partially or not visible462 this.pureElementMethodCall( "replaceValue", (Object)value );463 }464 465 // ************************************************************************************************************************ 466 // AndroidElement [15] = public void io.appium.java_client.MobileElement.setValue(java.lang.String)467 // IOSElement [14] = public void io.appium.java_client.MobileElement.setValue(java.lang.String)468 // MobileElement [2] = public void io.appium.java_client.MobileElement.setValue(java.lang.String)469 public void setValue( java.lang.String value ) {470 this.refresh();471 this.centerOnScreen(); // Method to put object in center of the screen if partially or not visible472 this.pureElementMethodCall( "setValue", (Object)value );473 }474 // ************************************************************************************************************************ 475 // AndroidElement [17] = public java.util.List io.appium.java_client.MobileElement.findElements(java.lang.String,java.lang.String)476 // IOSElement [16] = public java.util.List io.appium.java_client.MobileElement.findElements(java.lang.String,java.lang.String)477 // MobileElement [6] = public java.util.List io.appium.java_client.MobileElement.findElements(java.lang.String,java.lang.String)478 479 // ************************************************************************************************************************ 480 // Internal optimisation for the following findElementsXXX methods481 private pureElements intFindElementsXXX( String MethodName, int elementMethod, String Description ) {482 this.refresh(); // Method to detect, update and centre the object on screen if existing.483 Object feedback = this.pureElementMethodCall( MethodName, (Object)Description );484 List<Object> myObjectList = pureCore.CastObjecttoList( feedback );485 if ( myObjectList != null ) {486 pureElements newPureElements = new pureElements( "-", "-", elementMethod, Description, pureCore.defRefreshMode, this );487 newPureElements.theElements = myObjectList;488 newPureElements.refrehCode = "0xFFFFFFFF";489 return newPureElements;490 }else {491 return null;492 }493 }494 // ************************************************************************************************************************ 495 // AndroidElement [18] = public java.util.List io.appium.java_client.MobileElement.findElementsByLinkText(java.lang.String)496 // IOSElement [17] = public java.util.List io.appium.java_client.MobileElement.findElementsByLinkText(java.lang.String)497 // MobileElement [14] = public java.util.List io.appium.java_client.MobileElement.findElementsByLinkText(java.lang.String)498 public pureElements findElementsByLinkText( java.lang.String Description ){499 return intFindElementsXXX( "findElementsByLinkText", pureCore.elementMethod.linkText, Description );500 }501 // ************************************************************************************************************************ 502 // AndroidElement [19] = public java.util.List io.appium.java_client.MobileElement.findElementsByPartialLinkText(java.lang.String)503 // IOSElement [18] = public java.util.List io.appium.java_client.MobileElement.findElementsByPartialLinkText(java.lang.String)504 // MobileElement [15] = public java.util.List io.appium.java_client.MobileElement.findElementsByPartialLinkText(java.lang.String)505 public pureElements findElementsByPartialLinkText( java.lang.String Description ){506 return intFindElementsXXX( "findElementsByPartialLinkText", pureCore.elementMethod.partialLinkText, Description );507 }508 509 // ************************************************************************************************************************ 510 // AndroidElement [20] = public java.util.List io.appium.java_client.MobileElement.findElementsByTagName(java.lang.String)511 // IOSElement [19] = public java.util.List io.appium.java_client.MobileElement.findElementsByTagName(java.lang.String)512 // MobileElement [16] = public java.util.List io.appium.java_client.MobileElement.findElementsByTagName(java.lang.String)513 public pureElements findElementsByTagName( java.lang.String Description ){514 return intFindElementsXXX( "findElementsByTagName", pureCore.elementMethod.tagNamei, Description );515 }516 517 // ************************************************************************************************************************ 518 // AndroidElement [21] = public java.util.List io.appium.java_client.MobileElement.findElementsByName(java.lang.String)519 // IOSElement [20] = public java.util.List io.appium.java_client.MobileElement.findElementsByName(java.lang.String)520 // MobileElement [17] = public java.util.List io.appium.java_client.MobileElement.findElementsByName(java.lang.String)521 public pureElements findElementsByName( java.lang.String Description ){522 return intFindElementsXXX( "findElementsByName", pureCore.elementMethod.name, Description );523 }524 525 // ************************************************************************************************************************ 526 // AndroidElement [22] = public java.util.List io.appium.java_client.MobileElement.findElementsByClassName(java.lang.String)527 // IOSElement [21] = public java.util.List io.appium.java_client.MobileElement.findElementsByClassName(java.lang.String)528 // MobileElement [18] = public java.util.List io.appium.java_client.MobileElement.findElementsByClassName(java.lang.String)529 public pureElements findElementsByClassName( java.lang.String Description ){530 return intFindElementsXXX( "findElementsByClassName", pureCore.elementMethod.className, Description );531 }532 533 // ************************************************************************************************************************ 534 // AndroidElement [23] = public java.util.List io.appium.java_client.MobileElement.findElementsByCssSelector(java.lang.String)535 // IOSElement [22] = public java.util.List io.appium.java_client.MobileElement.findElementsByCssSelector(java.lang.String)536 // MobileElement [19] = public java.util.List io.appium.java_client.MobileElement.findElementsByCssSelector(java.lang.String)537 public pureElements findElementsByCssSelector( java.lang.String Description ){538 return intFindElementsXXX( "findElementsByCssSelector", pureCore.elementMethod.cssSelector, Description );539 }540 541 // ************************************************************************************************************************ 542 // AndroidElement [24] = public java.util.List io.appium.java_client.MobileElement.findElementsByXPath(java.lang.String)543 // IOSElement [23] = public java.util.List io.appium.java_client.MobileElement.findElementsByXPath(java.lang.String)544 // MobileElement [20] = public java.util.List io.appium.java_client.MobileElement.findElementsByXPath(java.lang.String)545 public pureElements findElementsByXPath( java.lang.String Description ){546 return intFindElementsXXX( "findElementsByXPath", pureCore.elementMethod.xpath, Description );547 }548 549 // ************************************************************************************************************************ 550 // AndroidElement [25] = public java.util.List io.appium.java_client.MobileElement.findElementsById(java.lang.String)551 // IOSElement [24] = public java.util.List io.appium.java_client.MobileElement.findElementsById(java.lang.String)552 // MobileElement [22] = public java.util.List io.appium.java_client.MobileElement.findElementsById(java.lang.String)553 public pureElements findElementsById( java.lang.String Description ){554 return intFindElementsXXX( "findElementsById", pureCore.elementMethod.id, Description );555 }556 557 // ************************************************************************************************************************ 558 // AndroidElement [26] = public java.util.List io.appium.java_client.MobileElement.findElementsByAccessibilityId(java.lang.String)559 // IOSElement [25] = public java.util.List io.appium.java_client.MobileElement.findElementsByAccessibilityId(java.lang.String)560 // MobileElement [26] = public java.util.List io.appium.java_client.MobileElement.findElementsByAccessibilityId(java.lang.String)561 public pureElements findElementsByAccessibilityId( java.lang.String Description ){562 return intFindElementsXXX( "findElementsByAccessibilityId", pureCore.elementMethod.AccessibilityId, Description );563 }564 565 // ************************************************************************************************************************ 566 // AndroidElement [27] = public org.openqa.selenium.Point io.appium.java_client.MobileElement.getCenter()567 // IOSElement [26] = public org.openqa.selenium.Point io.appium.java_client.MobileElement.getCenter()568 // MobileElement [25] = public org.openqa.selenium.Point io.appium.java_client.MobileElement.getCenter()569 public org.openqa.selenium.Point getCenter(){570 this.refresh();571 return (org.openqa.selenium.Point)this.pureElementMethodCall( "getCenter" );572 }573 // ************************************************************************************************************************ 574 // AndroidElement [28] = public boolean org.openqa.selenium.remote.RemoteWebElement.equals(java.lang.Object)575 // IOSElement [27] = public boolean org.openqa.selenium.remote.RemoteWebElement.equals(java.lang.Object)576 // MobileElement [27] = public boolean org.openqa.selenium.remote.RemoteWebElement.equals(java.lang.Object)577 public boolean equalsL( Object equalsto ){578 this.refresh();579 return (boolean)this.pureElementMethodCall( "equals", equalsto );580 }581 582 // ************************************************************************************************************************ 583 // AndroidElement [29] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.toString()584 // IOSElement [28] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.toString()585 // MobileElement [28] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.toString()586 public java.lang.String toStringL(){587 this.refresh();588 return (String)this.pureElementMethodCall( "toString" );589 }590 591 // ************************************************************************************************************************ 592 // AndroidElement [30] = public int org.openqa.selenium.remote.RemoteWebElement.hashCode()593 // IOSElement [29] = public int org.openqa.selenium.remote.RemoteWebElement.hashCode()594 // MobileElement [29] = public int org.openqa.selenium.remote.RemoteWebElement.hashCode()595 public int hashCodeL(){596 this.refresh();597 return (int)this.pureElementMethodCall( "hashCode" );598 }599 600 // ************************************************************************************************************************ 601 // AndroidElement [33] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.getId()602 // IOSElement [32] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.getId()603 // MobileElement [32] = public java.lang.String org.openqa.selenium.remote.RemoteWebElement.getId()604 public java.lang.String getId(){605 this.refresh();606 return (java.lang.String)this.pureElementMethodCall( "getId" );607 }608 // ************************************************************************************************************************ 609 // AndroidElement [35] = public void org.openqa.selenium.remote.RemoteWebElement.setParent(org.openqa.selenium.remote.RemoteWebDriver)610 // IOSElement [34] = public void org.openqa.selenium.remote.RemoteWebElement.setParent(org.openqa.selenium.remote.RemoteWebDriver)611 // MobileElement [34] = public void org.openqa.selenium.remote.RemoteWebElement.setParent(org.openqa.selenium.remote.RemoteWebDriver)612 public void setParent( org.openqa.selenium.remote.RemoteWebDriver remoteWebDriver ){613 this.refresh();614 this.pureElementMethodCall( "setParent", remoteWebDriver );615 }616 // ************************************************************************************************************************ 617 // AndroidElement [36] = public void org.openqa.selenium.remote.RemoteWebElement.setFileDetector(org.openqa.selenium.remote.FileDetector)618 // IOSElement [35] = public void org.openqa.selenium.remote.RemoteWebElement.setFileDetector(org.openqa.selenium.remote.FileDetector)619 // MobileElement [35] = public void org.openqa.selenium.remote.RemoteWebElement.setFileDetector(org.openqa.selenium.remote.FileDetector)620 public void setFileDetector( org.openqa.selenium.remote.FileDetector fileSelector ) {621 this.refresh();622 this.pureElementMethodCall( "setFileDetector", fileSelector );623 }624 625 // ************************************************************************************************************************ 626 // AndroidElement [47] = public org.openqa.selenium.WebDriver org.openqa.selenium.remote.RemoteWebElement.getWrappedDriver()627 // IOSElement [48] = public org.openqa.selenium.WebDriver org.openqa.selenium.remote.RemoteWebElement.getWrappedDriver()628 // MobileElement [46] = public org.openqa.selenium.WebDriver org.openqa.selenium.remote.RemoteWebElement.getWrappedDriver()629/* public pureDrivers getWrappedDriver(){630 this.refresh();631 Object SourceObject = this.pureElementMethodCall( "getWrappedDriver" );632 if ( SourceObject != null ) {633 pureDrivers newDriver = new pureDrivers();634 newDriver.DriverName = "WrappedDriver";635 newDriver.subDriverName = "";636 newDriver.mainDriver = SourceObject;637 return newDriver;638 }else {639 return null;640 }641 } */642 643 // ************************************************************************************************************************ 644 // AndroidElement [48] = public org.openqa.selenium.interactions.internal.Coordinates org.openqa.selenium.remote.RemoteWebElement.getCoordinates()645 // IOSElement [49] = public org.openqa.selenium.interactions.internal.Coordinates org.openqa.selenium.remote.RemoteWebElement.getCoordinates()646 // MobileElement [47] = public org.openqa.selenium.interactions.internal.Coordinates org.openqa.selenium.remote.RemoteWebElement.getCoordinates()647 public org.openqa.selenium.interactions.internal.Coordinates getCoordinates(){648 this.refresh();649 return (org.openqa.selenium.interactions.internal.Coordinates)this.pureElementMethodCall( "getCoordinates" );650 }651 652 // ************************************************************************************************************************ 653 // AndroidElement [49] = public java.util.Map org.openqa.selenium.remote.RemoteWebElement.toJson()654 // IOSElement [46] = public java.util.Map org.openqa.selenium.remote.RemoteWebElement.toJson()655 // MobileElement [48] = public java.util.Map org.openqa.selenium.remote.RemoteWebElement.toJson()656 public java.util.Map<?,?> toJson(){657 this.refresh();658 return (java.util.Map<?,?>)this.pureElementMethodCall( "toJson" );659 }660 661 // ************************************************************************************************************************ 662 // AndroidElement [50] = public void org.openqa.selenium.remote.RemoteWebElement.setId(java.lang.String)663 // IOSElement [47] = public void org.openqa.selenium.remote.RemoteWebElement.setId(java.lang.String)664 // MobileElement [49] = public void org.openqa.selenium.remote.RemoteWebElement.setId(java.lang.String)665 public void setId( java.lang.String Value ) {666 this.refresh();667 this.pureElementMethodCall( "setId", Value );668 }669 670 // ************************************************************************************************************************ 671 // AndroidElement [51] = public final void java.lang.Object.wait() throws java.lang.InterruptedException672 // IOSElement [50] = public final void java.lang.Object.wait() throws java.lang.InterruptedException673 // MobileElement [50] = public final void java.lang.Object.wait() throws java.lang.InterruptedException674 public void waitL(){675 this.refresh();676 this.pureElementMethodCall( "wait" );677 }678 679 // ************************************************************************************************************************ 680 // AndroidElement [52] = public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException681 // IOSElement [51] = public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException682 // MobileElement [51] = public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException683 public void waitL( long waitdelay, int waitdelayms ){684 this.refresh();685 this.pureElementMethodCall( "wait", waitdelay, waitdelayms );686 }687 688 // ************************************************************************************************************************ 689 // AndroidElement [53] = public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException690 // IOSElement [52] = public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException691 // MobileElement [52] = public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException692 public void waitL( long waitdelay ){693 this.refresh();694 this.pureElementMethodCall( "wait", waitdelay );695 }696 697 // ************************************************************************************************************************ 698 // AndroidElement [54] = public final native java.lang.Class java.lang.Object.getClass()699 // IOSElement [53] = public final native java.lang.Class java.lang.Object.getClass()700 // MobileElement [53] = public final native java.lang.Class java.lang.Object.getClass()701 public java.lang.Class<?> getClassL(){702 this.refresh();703 return (java.lang.Class<?>)this.pureElementMethodCall( "getClass" );704 }705 706 // ************************************************************************************************************************ 707 // AndroidElement [55] = public final native void java.lang.Object.notify()708 // IOSElement [54] = public final native void java.lang.Object.notify()709 // MobileElement [54] = public final native void java.lang.Object.notify()710 public void notifyL(){711 this.refresh();712 this.pureElementMethodCall( "notify" );713 }714 715 // ************************************************************************************************************************ 716 // AndroidElement [56] = public final native void java.lang.Object.notifyAll()717 // IOSElement [55] = public final native void java.lang.Object.notifyAll()718 // MobileElement [55] = public final native void java.lang.Object.notifyAll()719 public void notifyAllL(){720 this.refresh();721 this.pureElementMethodCall( "notifyAll" );722 }723 724 // ************************************************************************************************************************ 725 // AndroidElement [57] = public default org.openqa.selenium.WebElement io.appium.java_client.FindsByAccessibilityId.findElementByAccessibilityId(java.lang.String)726 // IOSElement [56] = public default org.openqa.selenium.WebElement io.appium.java_client.FindsByAccessibilityId.findElementByAccessibilityId(java.lang.String)727 // MobileElement [56] = public default org.openqa.selenium.WebElement io.appium.java_client.FindsByAccessibilityId.findElementByAccessibilityId(java.lang.String)728 public pureElement findElementByAccessibilityId( String Description ){729 return this.intFindElementXXX( "findElementByAccessibilityId", pureCore.elementMethod.AccessibilityId, Description );730 }731 732 // ************************************************************************************************************************ 733 // AndroidElement [58] = public default org.openqa.selenium.WebElement io.appium.java_client.FindsByAndroidUIAutomator.findElementByAndroidUIAutomator(java.lang.String)734 public pureElement findElementByAndroidUIAutomator( String Description ){735 return this.intFindElementXXX( "findElementByAndroidUIAutomator", pureCore.elementMethod.AndroidUIAutomator, Description );736 }737 // ************************************************************************************************************************ 738 // AndroidElement [59] = public default java.util.List io.appium.java_client.FindsByAndroidUIAutomator.findElementsByAndroidUIAutomator(java.lang.String)739 public pureElements findElementsByAndroidUIAutomator( String Description ) {740 return this.intFindElementsXXX( "findElementsByAndroidUIAutomator", pureCore.elementMethod.AndroidUIAutomator, Description );741 }742 // ************************************************************************************************************************ 743 // IOSElement [57] = public default org.openqa.selenium.WebElement io.appium.java_client.FindsByIosUIAutomation.findElementByIosUIAutomation(java.lang.String)744 public pureElement findElementByIosUIAutomation( String Description ){745 return this.intFindElementXXX( "findElementByIosUIAutomation", pureCore.elementMethod.IosUIAutomation, Description );746 }747 // ************************************************************************************************************************ 748 // IOSElement [58] = public default java.util.List io.appium.java_client.FindsByIosUIAutomation.findElementsByIosUIAutomation(java.lang.String)749 public pureElements findElementsByIosUIAutomation( String Description ) {750 return this.intFindElementsXXX( "findElementsByIosUIAutomation", pureCore.elementMethod.IosUIAutomation, Description );751 }752 // ************************************************************************************************************************ 753 // IOSElement [59] = public default org.openqa.selenium.WebElement io.appium.java_client.FindsByIosNSPredicate.findElementByIosNsPredicate(java.lang.String)754 public pureElement findElementByIosNsPredicate( String Description ){755 return this.intFindElementXXX( "findElementByIosNsPredicate", pureCore.elementMethod.IosNsPredicate, Description );756 }757 // ************************************************************************************************************************ 758 // IOSElement [60] = public default java.util.List io.appium.java_client.FindsByIosNSPredicate.findElementsByIosNsPredicate(java.lang.String)759 public pureElements findElementsByIosNsPredicate( String Description ) {760 return this.intFindElementsXXX( "findElementsByIosNsPredicate", pureCore.elementMethod.IosNsPredicate, Description );761 }762 // ************************************************************************************************************************ 763 // IOSElement [61] = public default org.openqa.selenium.WebElement io.appium.java_client.FindsByIosClassChain.findElementByIosClassChain(java.lang.String)764 public pureElement findElementByIosClassChain( String Description ){765 return this.intFindElementXXX( "findElementByIosClassChain", pureCore.elementMethod.IosClassChain, Description );766 }767 // ************************************************************************************************************************ 768 // IOSElement [62] = public default java.util.List io.appium.java_client.FindsByIosClassChain.findElementsByIosClassChain(java.lang.String)769 public pureElements findElementsByIosClassChain( String Description ) {770 return this.intFindElementsXXX( "findElementsByIosClassChain", pureCore.elementMethod.IosClassChain, Description );771 }772 // ************************************************************************************************************************ 773 private void refresh() {774 // Si l'Element n'a pas encore ete cherche, ou que son rafraichissement doit etre realise.775 if ( this.theElement == null || this.refreshMethod == 1 ) { // || this.refrehCode != pureCore.getLastLogCat() ) {776 pureDriverDetails myDriver = null;777 if ( this.driverLink == -1 ) {778 myDriver = pureDrivers.getCurrentDriverDetails();779 // this.driverToUse = myDriver;780 }else {781 myDriver = this.driverToUse;782 }783 this.theElement = this.detection();784 // Tout d'abord on réalise une attente pour trouver l'élément.785 /*try {786 this.theElement = (Object)(new WebDriverWait( (WebDriver)pureCore.getCurrentDriver(), pureCore.getMaxWaitDelay() )787 .until( ExpectedConditions.presenceOfElementLocated( By.xpath( pureCore.MethodToLocator( this.eMethod, this.ePath ) ) ) ) );788 }catch( Exception e ) {789 pureErrorHandler.castError( pureErrorHandler.exceptions.getType( e ), "pureElement.refresh()", this.eName, pureCore.MethodToLocator( this.eMethod, this.ePath ) );790 } */791 if ( this.parent == null ) {792 this.theElement = (Object)pureDrivers.findElementWE( pureCore.MethodToLocator( this.eMethod, this.ePath ), myDriver );793 }else {794 this.theElement = (Object)this.parent.findElement( pureCore.MethodToLocator( this.eMethod, this.ePath ) );795 }796 // this.centerOnScreen();797 }798 }799 public Object myObject = null;800 private Object detection() {801 pureDriverDetails myDriver = null;802 if ( this.driverLink == -1 ) {803 myDriver = pureDrivers.getCurrentDriverDetails();804 }else {805 myDriver = this.driverToUse;806 }807 try {808 WebDriverWait objWait = new WebDriverWait( (WebDriver)myDriver.mainDriver, 20, 500 );809 objWait.until( new ExpectedCondition<Boolean>() {810 private pureElement myElement;811 private pureDriverDetails myDriver;812 private ExpectedCondition<Boolean> init( pureElement myElement, pureDriverDetails myDriver ){813 this.myElement = myElement;814 this.myDriver = myDriver;815 return this;816 }817 public Boolean apply(WebDriver wDriver) {818 if( this.myElement.parent == null ) {819 this.myElement.theElement = (Object)pureDrivers.findElementWE( pureCore.MethodToLocator( this.myElement.eMethod, this.myElement.ePath ), this.myDriver );820 }else {821 this.myElement.theElement = (Object)this.myElement.parent.findElement( pureCore.MethodToLocator( this.myElement.eMethod, this.myElement.ePath ) );822 }823 return ( this.myElement.theElement != null );824 }825 }.init( this, myDriver ) );826 827 }catch( Exception e ) {828 pureErrorHandler.castError( pureErrorHandler.exceptions.getType( e ), "pureElement.refresh()", this.eName, pureCore.MethodToLocator( this.eMethod, this.ePath ).toString() );829 }830 return myObject;831 }832 // ************************************************************************************************************************ 833private void centerOnScreen() {834 pureDriverDetails myDriver = pureDrivers.getCurrentDriverDetails();835 // Positionner l'objet au milieu de l'ecran si possible...

Full Screen

Full Screen

Source:RemoteWebElementWrapper.java Github

copy

Full Screen

...133 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);134 } 135 }136 @Override137 public List<WebElement> findElements(final By by) {138 if (!SeleniumProxyConfig.isEnabled()) {139 return original.findElements(by);140 }141 try {142 final Method method = RemoteWebElement.class.getDeclaredMethod("findElements", (new Class<?>[]{By.class}));143 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),144 webDriver, original, method, new Object[]{by});145 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {146 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);147 } 148 }149 @Override150 public WebElement findElement(final By by) {151 if (!SeleniumProxyConfig.isEnabled()) {152 return original.findElement(by);153 }154 try {155 final Method method = RemoteWebElement.class.getDeclaredMethod("findElement", (new Class<?>[]{By.class}));156 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),157 webDriver, original, method, new Object[]{by});158 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {159 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);160 } 161 }162 @Override163 public WebElement findElementById(final String using) {164 if (!SeleniumProxyConfig.isEnabled()) {165 return original.findElementById(using);166 }167 try {168 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementById", (new Class<?>[]{String.class}));169 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),170 webDriver, original, method, new Object[]{using});171 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {172 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);173 } 174 }175 @Override176 public List<WebElement> findElementsById(final String using) {177 if (!SeleniumProxyConfig.isEnabled()) {178 return original.findElementsById(using);179 }180 try {181 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementsById", (new Class<?>[]{String.class}));182 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),183 webDriver, original, method, new Object[]{using});184 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {185 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);186 } 187 }188 @Override189 public WebElement findElementByLinkText(final String using) {190 if (!SeleniumProxyConfig.isEnabled()) {191 return original.findElementByLinkText(using);192 }193 try {194 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementByLinkText", (new Class<?>[]{String.class}));195 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),196 webDriver, original, method, new Object[]{using});197 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {198 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);199 } 200 }201 @Override202 public List<WebElement> findElementsByLinkText(final String using) {203 if (!SeleniumProxyConfig.isEnabled()) {204 return original.findElementsByLinkText(using);205 }206 try {207 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementsByLinkText", (new Class<?>[]{String.class}));208 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),209 webDriver, original, method, new Object[]{using});210 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {211 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);212 } 213 }214 @Override215 public WebElement findElementByName(final String using) {216 if (!SeleniumProxyConfig.isEnabled()) {217 return original.findElementByName(using);218 }219 try {220 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementByName", (new Class<?>[]{String.class}));221 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),222 webDriver, original, method, new Object[]{using});223 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {224 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);225 } 226 }227 @Override228 public List<WebElement> findElementsByName(final String using) {229 if (!SeleniumProxyConfig.isEnabled()) {230 return original.findElementsByName(using);231 }232 try {233 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementsByName", (new Class<?>[]{String.class}));234 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),235 webDriver, original, method, new Object[]{using});236 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {237 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);238 } 239 }240 @Override241 public WebElement findElementByClassName(final String using) {242 if (!SeleniumProxyConfig.isEnabled()) {243 return original.findElementByClassName(using);244 }245 try {246 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementByClassName", (new Class<?>[]{String.class}));247 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),248 webDriver, original, method, new Object[]{using});249 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {250 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);251 } 252 }253 @Override254 public List<WebElement> findElementsByClassName(final String using) {255 if (!SeleniumProxyConfig.isEnabled()) {256 return original.findElementsByClassName(using);257 }258 try {259 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementsByClassName", (new Class<?>[]{String.class}));260 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),261 webDriver, original, method, new Object[]{using});262 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {263 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);264 } 265 }266 @Override267 public WebElement findElementByCssSelector(final String using) {268 if (!SeleniumProxyConfig.isEnabled()) {269 return original.findElementByCssSelector(using);270 }271 try {272 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementByCssSelector", (new Class<?>[]{String.class}));273 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),274 webDriver, original, method, new Object[]{using});275 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {276 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);277 } 278 }279 @Override280 public List<WebElement> findElementsByCssSelector(final String using) {281 if (!SeleniumProxyConfig.isEnabled()) {282 return original.findElementsByCssSelector(using);283 }284 try {285 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementsByCssSelector", (new Class<?>[]{String.class}));286 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),287 webDriver, original, method, new Object[]{using});288 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {289 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);290 } 291 }292 @Override293 public WebElement findElementByXPath(final String using) {294 if (!SeleniumProxyConfig.isEnabled()) {295 return original.findElementByXPath(using);296 }297 try {298 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementByXPath", (new Class<?>[]{String.class}));299 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),300 webDriver, original, method, new Object[]{using});301 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {302 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);303 } 304 }305 @Override306 public List<WebElement> findElementsByXPath(final String using) {307 if (!SeleniumProxyConfig.isEnabled()) {308 return original.findElementsByXPath(using);309 }310 try {311 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementsByXPath", (new Class<?>[]{String.class}));312 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),313 webDriver, original, method, new Object[]{using});314 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {315 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);316 } 317 }318 @Override319 public WebElement findElementByPartialLinkText(final String using) {320 if (!SeleniumProxyConfig.isEnabled()) {321 return original.findElementByPartialLinkText(using);322 }323 try {324 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementByPartialLinkText", (new Class<?>[]{String.class}));325 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),326 webDriver, original, method, new Object[]{using});327 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {328 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);329 } 330 }331 @Override332 public List<WebElement> findElementsByPartialLinkText(final String using) {333 if (!SeleniumProxyConfig.isEnabled()) {334 return original.findElementsByPartialLinkText(using);335 }336 try {337 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementsByPartialLinkText", (new Class<?>[]{String.class}));338 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),339 webDriver, original, method, new Object[]{using});340 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {341 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);342 } 343 }344 @Override345 public WebElement findElementByTagName(final String using) {346 if (!SeleniumProxyConfig.isEnabled()) {347 return original.findElementByTagName(using);348 }349 try {350 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementByTagName", (new Class<?>[]{String.class}));351 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),352 webDriver, original, method, new Object[]{using});353 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {354 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);355 } 356 }357 @Override358 public List<WebElement> findElementsByTagName(final String using) {359 if (!SeleniumProxyConfig.isEnabled()) {360 return original.findElementsByTagName(using);361 }362 try {363 final Method method = RemoteWebElement.class.getDeclaredMethod("findElementsByTagName", (new Class<?>[]{String.class}));364 return proxySendHelper.sendAndReturn(METHODS_ALWAYS_SEND, METHODS_SEND_ON_EXCEPTION_ONLY, Collections.<String>emptyList(),365 webDriver, original, method, new Object[]{using});366 } catch (final IllegalAccessException | InvocationTargetException | NoSuchMethodException | SecurityException e) {367 throw new NeotysWrappingException("Issue with NeoLoad proxy.", e);368 } 369 }370 @Override371 public WebDriver getWrappedDriver() {372 if (!SeleniumProxyConfig.isEnabled()) {373 return original.getWrappedDriver();374 }375 return (WebDriver) wrapperUtils.wrapIfNecessary(webDriver, super.getWrappedDriver());376 }377 @Override...

Full Screen

Full Screen

Source:Factory.java Github

copy

Full Screen

...31 *32 * @param url url of the server33 * @param desiredCapabilities desired capabilities for the session34 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.35 * Instances of the defined type will be returned via findElement* and findElements*.36 * Warning (!!!). Allowed types:37 * {@link org.openqa.selenium.WebElement}38 * {@link org.openqa.selenium.remote.RemoteWebElement}39 * {@link io.appium.java_client.MobileElement}40 * {@link io.appium.java_client.android.AndroidElement}41 * @return enhanced Android driver42 */43 public static <T extends WebElement> EnhancedAndroidDriver<T> createAndroidDriver(URL url, DesiredCapabilities desiredCapabilities) {44 return provider.createAndroidDriver(url, desiredCapabilities);45 }46 /**47 * Create enhanced android driver, use in place of {@link io.appium.java_client.android.AndroidDriver#AndroidDriver(URL, HttpClient.Factory, Capabilities)}48 * @param url of the server49 * @param httpClientFactory http client factory50 * @param desiredCapabilities desired capabilities for the session51 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.52 * Instances of the defined type will be returned via findElement* and findElements*.53 * Warning (!!!). Allowed types:54 * {@link org.openqa.selenium.WebElement}55 * {@link org.openqa.selenium.remote.RemoteWebElement}56 * {@link io.appium.java_client.MobileElement}57 * {@link io.appium.java_client.android.AndroidElement}58 * @return enhanced Android driver59 */60 public static <T extends WebElement> EnhancedAndroidDriver<T> createAndroidDriver(URL url, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {61 return provider.createAndroidDriver(url, httpClientFactory, desiredCapabilities);62 }63 /**64 * Create enhanced android driver, use in place of {@link io.appium.java_client.android.AndroidDriver#AndroidDriver(AppiumDriverLocalService, Capabilities)}65 * @param service local driver service. Warning: not supported in Xamarin test cloud.66 * @param desiredCapabilities desired capabilities for the session67 * @return enhanced Android driver68 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.69 * Instances of the defined type will be returned via findElement* and findElements*.70 * Warning (!!!). Allowed types:71 * {@link org.openqa.selenium.WebElement}72 * {@link org.openqa.selenium.remote.RemoteWebElement}73 * {@link io.appium.java_client.MobileElement}74 * {@link io.appium.java_client.android.AndroidElement}75 */76 public static <T extends WebElement> EnhancedAndroidDriver<T> createAndroidDriver(AppiumDriverLocalService service, Capabilities desiredCapabilities) {77 WarnServiceAndBuilerNotSupportedInXTC();78 return provider.createAndroidDriver(service, desiredCapabilities);79 }80 /**81 * Create enhanced android driver, use in place of {@link io.appium.java_client.android.AndroidDriver#AndroidDriver(AppiumDriverLocalService, HttpClient.Factory, Capabilities)}82 * @param service local driver service. Warning: not supported in Xamarin test cloud.83 * @param httpClientFactory http client factory84 * @param desiredCapabilities desired capabilities for the session85 * @return enhanced Android driver86 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.87 * Instances of the defined type will be returned via findElement* and findElements*.88 * Warning (!!!). Allowed types:89 * {@link org.openqa.selenium.WebElement}90 * {@link org.openqa.selenium.remote.RemoteWebElement}91 * {@link io.appium.java_client.MobileElement}92 * {@link io.appium.java_client.android.AndroidElement}93 */94 public static <T extends WebElement> EnhancedAndroidDriver<T> createAndroidDriver(AppiumDriverLocalService service, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {95 WarnServiceAndBuilerNotSupportedInXTC();96 return provider.createAndroidDriver(service, httpClientFactory, desiredCapabilities);97 }98 /**99 * Create enhanced android driver, use in place of {@link io.appium.java_client.android.AndroidDriver#AndroidDriver(AppiumServiceBuilder, Capabilities)}100 * @param builder service builder. Warning: not supported in Xamarin test cloud.101 * @param desiredCapabilities desired capabilities for the session102 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.103 * Instances of the defined type will be returned via findElement* and findElements*.104 * Warning (!!!). Allowed types:105 * {@link org.openqa.selenium.WebElement}106 * {@link org.openqa.selenium.remote.RemoteWebElement}107 * {@link io.appium.java_client.MobileElement}108 * {@link io.appium.java_client.android.AndroidElement}109 * @return enhanced Android driver110 */111 public static <T extends WebElement> EnhancedAndroidDriver<T> createAndroidDriver(AppiumServiceBuilder builder, Capabilities desiredCapabilities) {112 WarnServiceAndBuilerNotSupportedInXTC();113 return provider.createAndroidDriver(builder, desiredCapabilities);114 }115 /**116 * Create enhanced android driver, use in place of {@link io.appium.java_client.android.AndroidDriver#AndroidDriver(AppiumDriverLocalService, HttpClient.Factory, Capabilities)}117 * @param builder service builder. Warning: not supported in Xamarin test cloud.118 * @param httpClientFactory http client factory119 * @param desiredCapabilities desired capabilities for the session120 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.121 * Instances of the defined type will be returned via findElement* and findElements*.122 * Warning (!!!). Allowed types:123 * {@link org.openqa.selenium.WebElement}124 * {@link org.openqa.selenium.remote.RemoteWebElement}125 * {@link io.appium.java_client.MobileElement}126 * {@link io.appium.java_client.android.AndroidElement}127 * @return enhanced Android driver128 */129 public static <T extends WebElement> EnhancedAndroidDriver<T> createAndroidDriver(AppiumServiceBuilder builder, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {130 WarnServiceAndBuilerNotSupportedInXTC();131 return provider.createAndroidDriver(builder, httpClientFactory, desiredCapabilities);132 }133 /**134 * Create enhanced android driver, use in place of {@link io.appium.java_client.android.AndroidDriver#AndroidDriver(URL, Capabilities)}135 * @param httpClientFactory http client factory136 * @param desiredCapabilities desired capabilities for the session137 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.138 * Instances of the defined type will be returned via findElement* and findElements*.139 * Warning (!!!). Allowed types:140 * {@link org.openqa.selenium.WebElement}141 * {@link org.openqa.selenium.remote.RemoteWebElement}142 * {@link io.appium.java_client.MobileElement}143 * {@link io.appium.java_client.android.AndroidElement}144 * @return enhanced Android driver145 */146 public static <T extends WebElement> EnhancedAndroidDriver<T> createAndroidDriver(HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {147 return provider.createAndroidDriver(httpClientFactory, desiredCapabilities);148 }149 /**150 * Create enhanced android driver, use in place of {@link io.appium.java_client.android.AndroidDriver#AndroidDriver(URL, Capabilities)}151 * @param desiredCapabilities desired capabilities for the session152 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.153 * Instances of the defined type will be returned via findElement* and findElements*.154 * Warning (!!!). Allowed types:155 * {@link org.openqa.selenium.WebElement}156 * {@link org.openqa.selenium.remote.RemoteWebElement}157 * {@link io.appium.java_client.MobileElement}158 * {@link io.appium.java_client.android.AndroidElement}159 * @return enhanced Android driver160 */161 public static <T extends WebElement> EnhancedAndroidDriver<T> createAndroidDriver(Capabilities desiredCapabilities) {162 return provider.createAndroidDriver(desiredCapabilities);163 }164 /**165 * Create enhanced iOS driver, use in place of {@link io.appium.java_client.ios.IOSDriver#IOSDriver(URL, HttpClient.Factory, Capabilities)}166 * @param url of the server167 * @param httpClientFactory http client factory168 * @param desiredCapabilities desired capabilities for the session169 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.170 * Instances of the defined type will be returned via findElement* and findElements*.171 * Warning (!!!). Allowed types:172 * {@link org.openqa.selenium.WebElement}173 * {@link org.openqa.selenium.remote.RemoteWebElement}174 * {@link io.appium.java_client.MobileElement}175 * {@link io.appium.java_client.android.AndroidElement}176 * @return enhanced IOS driver177 */178 public static <T extends WebElement> EnhancedIOSDriver<T> createIOSDriver(URL url, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {179 return provider.createIOSDriver(url, httpClientFactory, desiredCapabilities);180 }181 /**182 * Create enhanced iOS driver, use in place of {@link io.appium.java_client.ios.IOSDriver#IOSDriver(AppiumDriverLocalService, Capabilities)}183 * @param service local driver service. Warning: not supported in Xamarin test cloud.184 * @param desiredCapabilities desired capabilities for the session185 * @return enhanced IOS driver186 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.187 * Instances of the defined type will be returned via findElement* and findElements*.188 * Warning (!!!). Allowed types:189 * {@link org.openqa.selenium.WebElement}190 * {@link org.openqa.selenium.remote.RemoteWebElement}191 * {@link io.appium.java_client.MobileElement}192 * {@link io.appium.java_client.android.AndroidElement}193 */194 public static <T extends WebElement> EnhancedIOSDriver<T> createIOSDriver(AppiumDriverLocalService service, Capabilities desiredCapabilities) {195 WarnServiceAndBuilerNotSupportedInXTC();196 return provider.createIOSDriver(service, desiredCapabilities);197 }198 /**199 * Create enhanced iOS driver, use in place of {@link io.appium.java_client.ios.IOSDriver#IOSDriver(AppiumDriverLocalService, HttpClient.Factory, Capabilities)}200 * @param service local driver service. Warning: not supported in Xamarin test cloud.201 * @param httpClientFactory http client factory202 * @param desiredCapabilities desired capabilities for the session203 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.204 * Instances of the defined type will be returned via findElement* and findElements*.205 * Warning (!!!). Allowed types:206 * {@link org.openqa.selenium.WebElement}207 * {@link org.openqa.selenium.remote.RemoteWebElement}208 * {@link io.appium.java_client.MobileElement}209 * {@link io.appium.java_client.android.AndroidElement}210 * @return enhanced IOS driver211 */212 public static <T extends WebElement> EnhancedIOSDriver<T> createIOSDriver(AppiumDriverLocalService service, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {213 WarnServiceAndBuilerNotSupportedInXTC();214 return provider.createIOSDriver(service, httpClientFactory, desiredCapabilities);215 }216 /**217 * Create enhanced iOS driver, use in place of {@link io.appium.java_client.ios.IOSDriver#IOSDriver(AppiumServiceBuilder, Capabilities)}218 * @param builder service builder. Warning: not supported in Xamarin test cloud.219 * @param desiredCapabilities desired capabilities for the session220 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.221 * Instances of the defined type will be returned via findElement* and findElements*.222 * Warning (!!!). Allowed types:223 * {@link org.openqa.selenium.WebElement}224 * {@link org.openqa.selenium.remote.RemoteWebElement}225 * {@link io.appium.java_client.MobileElement}226 * {@link io.appium.java_client.android.AndroidElement}227 * @return enhanced IOS driver228 */229 public static <T extends WebElement> EnhancedIOSDriver<T> createIOSDriver(AppiumServiceBuilder builder, Capabilities desiredCapabilities) {230 WarnServiceAndBuilerNotSupportedInXTC();231 return provider.createIOSDriver(builder, desiredCapabilities);232 }233 /**234 * Create enhanced iOS driver, use in place of {@link io.appium.java_client.ios.IOSDriver#IOSDriver(AppiumDriverLocalService, HttpClient.Factory, Capabilities)}235 * @param builder service builder. Warning: not supported in Xamarin test cloud.236 * @param httpClientFactory http client factory237 * @param desiredCapabilities desired capabilities for the session238 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.239 * Instances of the defined type will be returned via findElement* and findElements*.240 * Warning (!!!). Allowed types:241 * {@link org.openqa.selenium.WebElement}242 * {@link org.openqa.selenium.remote.RemoteWebElement}243 * {@link io.appium.java_client.MobileElement}244 * {@link io.appium.java_client.android.AndroidElement}245 * @return enhanced IOS driver246 */247 public static <T extends WebElement> EnhancedIOSDriver<T> createIOSDriver(AppiumServiceBuilder builder, HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {248 WarnServiceAndBuilerNotSupportedInXTC();249 return provider.createIOSDriver(builder, httpClientFactory, desiredCapabilities);250 }251 /**252 * Create enhanced iOS driver, use in place of {@link io.appium.java_client.ios.IOSDriver#IOSDriver(URL, Capabilities)}253 * @param httpClientFactory http client factory254 * @param desiredCapabilities desired capabilities for the session255 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.256 * Instances of the defined type will be returned via findElement* and findElements*.257 * Warning (!!!). Allowed types:258 * {@link org.openqa.selenium.WebElement}259 * {@link org.openqa.selenium.remote.RemoteWebElement}260 * {@link io.appium.java_client.MobileElement}261 * {@link io.appium.java_client.android.AndroidElement}262 * @return enhanced IOS driver263 */264 public static <T extends WebElement> EnhancedIOSDriver<T> createIOSDriver(HttpClient.Factory httpClientFactory, Capabilities desiredCapabilities) {265 return provider.createIOSDriver(httpClientFactory, desiredCapabilities);266 }267 /**268 * Create enhanced iOS driver, use in place of {@link io.appium.java_client.ios.IOSDriver#IOSDriver(URL, Capabilities)}269 * @param desiredCapabilities desired capabilities for the session270 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.271 * Instances of the defined type will be returned via findElement* and findElements*.272 * Warning (!!!). Allowed types:273 * {@link org.openqa.selenium.WebElement}274 * {@link org.openqa.selenium.remote.RemoteWebElement}275 * {@link io.appium.java_client.MobileElement}276 * {@link io.appium.java_client.android.AndroidElement}277 * @return enhanced IOS driver278 */279 public static <T extends WebElement> EnhancedIOSDriver<T> createIOSDriver(Capabilities desiredCapabilities) {280 return provider.createIOSDriver(desiredCapabilities);281 }282 /**283 * Create enhanced iOS driver284 * @param url url of the server285 * @param capabilities desired capabilities for the session286 * @param <T> the required type of class which implement {@link org.openqa.selenium.WebElement}.287 * Instances of the defined type will be returned via findElement* and findElements*.288 * Warning (!!!). Allowed types:289 * {@link org.openqa.selenium.WebElement}290 * {@link org.openqa.selenium.remote.RemoteWebElement}291 * {@link io.appium.java_client.MobileElement}292 * {@link io.appium.java_client.android.AndroidElement}293 * @return enhanced iOS driver294 */295 public static <T extends WebElement> EnhancedIOSDriver<T> createIOSDriver(URL url, DesiredCapabilities capabilities) {296 return provider.createIOSDriver(url, capabilities);297 }298 /**299 * Create watcher for JUnit300 * @return a watcher for use with JUnit301 */...

Full Screen

Full Screen

Source:EyesAppiumElement.java Github

copy

Full Screen

...81 }82 return wrappedElementsList;83 }84 @Override85 public List<WebElement> findElements(By by) {86 return wrapElements(webElement.findElements(by));87 }88 @Override89 public WebElement findElement(By by) {90 return wrapElement(webElement.findElement(by));91 }92 public WebElement findElementById(String using) {93 return wrapElement(webElement.findElement(By.id(using)));94 }95 public List<WebElement> findElementsById(String using) {96 return wrapElements(webElement.findElements(By.id(using)));97 }98 public WebElement findElementByLinkText(String using) {99 return wrapElement(webElement.findElement(By.linkText(using)));100 }101 public List<WebElement> findElementsByLinkText(String using) {102 return wrapElements(webElement.findElements(By.linkText(using)));103 }104 public WebElement findElementByName(String using) {105 return wrapElement(webElement.findElement(By.name(using)));106 }107 public List<WebElement> findElementsByName(String using) {108 return wrapElements(webElement.findElements(By.name(using)));109 }110 public WebElement findElementByClassName(String using) {111 return wrapElement(webElement.findElement(By.className(using)));112 }113 public List<WebElement> findElementsByClassName(String using) {114 return wrapElements(webElement.findElements(By.className(using)));115 }116 public WebElement findElementByCssSelector(String using) {117 return wrapElement(webElement.findElement(By.cssSelector(using)));118 }119 public List<WebElement> findElementsByCssSelector(String using) {120 return wrapElements(webElement.findElements(By.cssSelector(using)));121 }122 public WebElement findElementByXPath(String using) {123 return wrapElement(webElement.findElement(By.xpath(using)));124 }125 public List<WebElement> findElementsByXPath(String using) {126 return wrapElements(webElement.findElements(By.xpath(using)));127 }128 public WebElement findElementByPartialLinkText(String using) {129 return wrapElement(webElement.findElement(By.partialLinkText(using)));130 }131 public List<WebElement> findElementsByPartialLinkText(String using) {132 return wrapElements(webElement.findElements(By.partialLinkText(using)));133 }134 public WebElement findElementByTagName(String using) {135 return wrapElement(webElement.findElement(By.tagName(using)));136 }137 public List<WebElement> findElementsByTagName(String using) {138 return wrapElements(webElement.findElements(By.tagName(using)));139 }140 public boolean equals(Object obj) {141 return (obj instanceof RemoteWebElement) && webElement.equals(obj);142 }143 @Override144 public int hashCode() {145 return webElement.hashCode();146 }147 @Override148 public void setFileDetector(FileDetector detector) {149 webElement.setFileDetector(detector);150 }151 @Override152 public void submit() {...

Full Screen

Full Screen

Source:CalendarDynamicWebtableTwo.java Github

copy

Full Screen

...11 WebDriver driver = new FirefoxDriver();12 driver.get("http://www.makemytrip.com/");13 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);14 15 driver.findElement(By.xpath("//*[@id='widget_row']/div[1]/div/div[2]/ul/li[2]/a/span[2]")).click();16 17 18driver.findElement(By.xpath("//*[@id='round_trip_button1']/span")).click();19driver.findElement(By.xpath("//*[@id='from_typeahead1']")).sendKeys("Hyderabad, India (HYD)");20driver.findElement(By.xpath("//*[@id='to_typeahead1']")).sendKeys("New Delhi, India (DEL)");21driver.findElement(By.xpath("//*[@id='start_date_sec']/span[2]")).click();22String j_date="10/01/2017";23String a [] =j_date.split("/");24String day=a[0];25String year=a[2];26int x= Integer.parseInt(a[1]);27String [] months={"January","February","March","April","May","June","July","August","September","October","November","December"};28String month=months[x-1];29String cal_year;30String cal_month;31cal_year=driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div[2]/div/div/span[2]")).getText();32while(!cal_year.equals(year))33{34 driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div[3]/div/a/span")).click();35 cal_year=driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div[2]/div/div/span[2]")).getText();36}37cal_month=driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div[2]/div/div/span[1]")).getText();38while(!cal_month.equals(month))39{40 driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div[3]/div/a/span")).click();41 cal_month=driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div[2]/div/div/span[1]")).getText();42}43 44 WebElement calendar= driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div[2]"));45 List<WebElement> rows= calendar.findElements(By.tagName("tr"));46 for(int i=0;i<rows.size();i++)47 {48 List<WebElement> cols = rows.get(i).findElements(By.tagName("td"));49 50 for(int j=0;j<cols.size();j++)51 {52 if(cols.get(j).getText().equals(day))53 54 {55 cols.get(j).click();56 break;57 }58 59 }60 61 62 }63 64 65 }66}67/*Exception in thread "main" org.openqa.selenium.StaleElementReferenceException: Element is no longer attached to the DOM68Command duration or timeout: 14 milliseconds69For documentation on this error, please visit: http://seleniumhq.org/exceptions/stale_element_reference.html70Build info: version: '2.50.1', revision: 'd7fc91b', time: '2016-01-29 19:08:26'71System info: host: 'VivekanandYG', ip: '192.168.1.2', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_60'72*** Element info: {Using=tag name, value=td}73Session ID: c4798855-5a27-4584-8433-8fc2ac06676374Driver info: org.openqa.selenium.firefox.FirefoxDriver75Capabilities [{platform=WINDOWS, acceptSslCerts=true, javascriptEnabled=true, cssSelectorsEnabled=true, databaseEnabled=true, browserName=firefox, handlesAlerts=true, nativeEvents=false, webStorageEnabled=true, rotatable=false, locationContextEnabled=true, applicationCacheEnabled=true, takesScreenshot=true, version=44.0.2}]76 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)77 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)78 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)79 at java.lang.reflect.Constructor.newInstance(Constructor.java:526)80 at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)81 at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)82 at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)83 at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:327)84 at org.openqa.selenium.remote.RemoteWebElement.findElements(RemoteWebElement.java:214)85 at org.openqa.selenium.remote.RemoteWebElement.findElementsByTagName(RemoteWebElement.java:320)86 at org.openqa.selenium.By$ByTagName.findElements(By.java:327)87 at org.openqa.selenium.remote.RemoteWebElement.findElements(RemoteWebElement.java:190)88 at Package.WebTable.CalendarDynamicWebtableTwo.main(CalendarDynamicWebtableTwo.java:61)89Caused by: org.openqa.selenium.StaleElementReferenceException: Element is no longer attached to the DOM90For documentation on this error, please visit: http://seleniumhq.org/exceptions/stale_element_reference.html91Build info: version: '2.50.1', revision: 'd7fc91b', time: '2016-01-29 19:08:26'92System info: host: 'VivekanandYG', ip: '192.168.1.2', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_60'93Driver info: driver.version: unknown94 at <anonymous class>.fxdriver.cache.getElementAt(resource://fxdriver/modules/web-element-cache.js:9406)95 at <anonymous class>.Utils.getElementAt(file:///C:/Users/anand/AppData/Local/Temp/anonymous8141215110523029785webdriver-profile/extensions/fxdriver@googlecode.com/components/driver-component.js:8992)96 at <anonymous class>.FirefoxDriver.prototype.findElementsInternal_(file:///C:/Users/anand/AppData/Local/Temp/anonymous8141215110523029785webdriver-profile/extensions/fxdriver@googlecode.com/components/driver-component.js:10737)97 at <anonymous class>.FirefoxDriver.prototype.findChildElements(file:///C:/Users/anand/AppData/Local/Temp/anonymous8141215110523029785webdriver-profile/extensions/fxdriver@googlecode.com/components/driver-component.js:10758)98 at <anonymous class>.DelayedCommand.prototype.executeInternal_/h(file:///C:/Users/anand/AppData/Local/Temp/anonymous8141215110523029785webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12595)99 at <anonymous class>.DelayedCommand.prototype.executeInternal_(file:///C:/Users/anand/AppData/Local/Temp/anonymous8141215110523029785webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12600)100 at <anonymous class>.DelayedCommand.prototype.execute/<(file:///C:/Users/anand/AppData/Local/Temp/anonymous8141215110523029785webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12542)101*/...

Full Screen

Full Screen

Source:ChromeDriverClient.java Github

copy

Full Screen

...39 }40 41 public boolean tapById(String id) {42 try{43 Map<String, ?> params = ImmutableMap.of("element", ((RemoteWebElement)driver.findElement(By.id(id))).getId());44 ((RobotRemoteWebDriver)this.driver).execute(DriverCommand.TOUCH_SINGLE_TAP, params);45 }catch(Exception ex) {46 return false;47 }48 return true;49 }50 51 public boolean tapByXPath(String xpath) {52 try {53 Map<String, ?> params = ImmutableMap.of("element", ((RemoteWebElement)driver.findElement(By.xpath(xpath))).getId());54 ((RobotRemoteWebDriver)this.driver).execute(DriverCommand.TOUCH_SINGLE_TAP, params);55 }catch(Exception ex) {56 return false;57 }58 return true;59 }60 61 public boolean tap(By by) {62 try {63 Map<String, ?> params = ImmutableMap.of("element", ((RemoteWebElement)driver.findElement(by)).getId());64 ((RobotRemoteWebDriver)this.driver).execute(DriverCommand.TOUCH_SINGLE_TAP, params);65 }catch(Exception ex) {66 return false;67 }68 return true;69 }70 71 public void quitDriver() {72 if(driver != null)73 driver.quit();74 }75 76 public WebDriver getDriver() {77 return this.driver;78 }79 80 public WebElement findElement(By by) {81 try{82 return this.driver.findElement(by);83 }catch(Exception ex) {84 return null;85 }86 }87 88 public List<WebElement> findElements(By by) {89 return this.driver.findElements(by);90 }91 92 public String getpageSource() {93 return this.driver.getPageSource();94 }95 96 public boolean sendKeys(By by, String str) {97 WebElement element3 = findElement(by);98 if(element3 == null)99 return false;100 element3.sendKeys(str);101 return true;102 }103 104}...

Full Screen

Full Screen

Source:DecoratedRemoteWebDriverTest.java Github

copy

Full Screen

...59 RemoteWebElement originalElement = new RemoteWebElement();60 String elementId = UUID.randomUUID().toString();61 originalElement.setParent(originalDriver);62 originalElement.setId(elementId);63 when(originalDriver.findElement(any())).thenReturn(originalElement);64 WebDriver decoratedDriver = new WebDriverDecorator().decorate(originalDriver);65 WebElement element = decoratedDriver.findElement(By.id("test"));66 WebElementToJsonConverter converter = new WebElementToJsonConverter();67 ImmutableMap<String, String> result = (ImmutableMap<String, String>) converter.apply(element);68 assertThat(result.get(Dialect.OSS.getEncodedElementKey())).isEqualTo(elementId);69 }70}...

Full Screen

Full Screen

Source:RoboElement.java Github

copy

Full Screen

1package io.test.automation.robodriver.internal;2import java.awt.GraphicsDevice;3import java.awt.Rectangle;4import java.util.WeakHashMap;5import org.openqa.selenium.remote.RemoteWebDriver;6import org.openqa.selenium.remote.RemoteWebElement;7import org.openqa.selenium.remote.server.handler.FindElement;8abstract public class RoboElement extends RemoteWebElement {9 private static WeakHashMap<String, RoboElement> ELEMENTS = new WeakHashMap<>();10 public static RoboElement getByElementId(String elementId) {11 return ELEMENTS.get(elementId);12 }13 public RoboElement(String id, RemoteWebDriver parent) {14 this.setId(id);15 this.setParent(parent);16 }17 @Override18 public boolean equals(Object obj) {19 return getId().equals(((RoboElement) obj).getId());20 }21 @Override22 public int hashCode() {23 return getId().hashCode();24 }25 /**26 * Selenium server internal id, see {@link FindElement}27 * 28 * @param elementId29 */30 public void addKnownElement(String elementId) {31 ELEMENTS.put(elementId, this);32 }33 public abstract GraphicsDevice getDevice();34 protected abstract Rectangle getRectAwt();35}...

Full Screen

Full Screen

findElement

Using AI Code Generation

copy

Full Screen

1package org.openqa.selenium.devtools;2import org.openqa.selenium.By;3import org.openqa.selenium.WebDriver;4import org.openqa.selenium.WebElement;5import org.openqa.selenium.chrome.ChromeDriver;6import org.openqa.selenium.devtools.v86.browser.Browser;7import org.openqa.selenium.devtools.v86.browser.model.Bounds;8import org.openqa.selenium.devtools.v86.browser.model.Color;9import org.openqa.selenium.devtools.v86.browser.model.GetWindowForTargetResponse;10import org.openqa.selenium.devtools.v86.browser.model.SetWindowBoundsRequest;11import org.openqa.selenium.devtools.v86.browser.model.WindowState;12import org.openqa.selenium.devtools.v86.dom.GetBoxModelResponse;13import org.openqa.selenium.devtools.v86.dom.GetContentQuadsResponse;14import org.openqa.selenium.devtools.v86.dom.GetDocumentResponse;15import org.openqa.selenium.devtools.v86.dom.GetNodeForLocationResponse;16import org.openqa.selenium.devtools.v86.dom.NodeId;17import org.openqa.selenium.devtools.v86.dom.model.BoxModel;18import org.openqa.selenium.devtools.v86.dom.model.Rect;19import org.openqa.selenium.devtools.v86.page.GetLayoutMetricsResponse;20import org.openqa.selenium.devtools.v86.page.Page;21import org.openqa.selenium.devtools.v86.runtime.EvaluateResponse;22import org.openqa.selenium.devtools.v86.runtime.GetPropertiesResponse;23import org.openqa.selenium.devtools.v86.runtime.RemoteObject;24import org.openqa.selenium.devtools.v86.runtime.Runtime;25import org.openqa.selenium.devtools.v86.runtime.model.PropertyDescriptor;26import org.openqa.selenium.devtools.v86.runtime.model.RemoteObjectType;27import org.openqa.selenium.devtools.v86.target.Target;28import org.openqa.selenium.devtools.v86.target.model.SessionID;29import org.openqa.selenium.remote.RemoteWebElement;30import org.openqa.selenium.support.ui.ExpectedConditions;31import org.openqa.selenium.support.ui.WebDriverWait;32import java.util.List;33import java.util.concurrent.ExecutionException;34import java.util.concurrent.Future;35import java.util.concurrent.TimeUnit;36import static org.openqa.selenium.devtools.v86.dom.DOM.*;37import static org.openqa.selenium.devtools.v86.page.Page.*;38import static org.openqa.selenium.devtools.v86.runtime.Runtime.*;39public class DevToolsExample {40 public static void main(String[] args) throws InterruptedException, ExecutionException {41 System.setProperty("webdriver.chrome.driver", "/Users/username/Downloads/chromedriver");42 WebDriver driver = new ChromeDriver();43 WebDriverWait wait = new WebDriverWait(driver, 10);

Full Screen

Full Screen

findElement

Using AI Code Generation

copy

Full Screen

1import org.openqa.selenium.remote.RemoteWebElement;2RemoteWebElement element = (RemoteWebElement) driver.findElement(By.id("someId"));3element.findElement(By.linkText("someLinkText"));4import org.openqa.selenium.remote.RemoteWebElement;5RemoteWebElement element = (RemoteWebElement) driver.findElement(By.id("someId"));6element.findElements(By.linkText("someLinkText"));

Full Screen

Full Screen

findElement

Using AI Code Generation

copy

Full Screen

1RemoteWebElement element = new RemoteWebElement();2element.findElement(By.id("elementId"));3element.click();4RemoteWebElement element = new RemoteWebElement();5element.findElement(By.id("elementId"));6element.click();7RemoteWebElement element = new RemoteWebElement();8element.findElement(By.id("elementId"));9element.click();10RemoteWebElement element = new RemoteWebElement();11element.findElement(By.id("elementId"));12element.click();13RemoteWebElement element = new RemoteWebElement();14element.findElement(By.id("elementId"));15element.click();16RemoteWebElement element = new RemoteWebElement();

Full Screen

Full Screen

findElement

Using AI Code Generation

copy

Full Screen

1package test;2import java.net.URL;3import java.util.concurrent.TimeUnit;4import org.openqa.selenium.By;5import org.openqa.selenium.WebDriver;6import org.openqa.selenium.WebElement;7import org.openqa.selenium.remote.DesiredCapabilities;8import org.openqa.selenium.remote.RemoteWebElement;9import org.openqa.selenium.support.ui.ExpectedConditions;10import org.openqa.selenium.support.ui.WebDriverWait;11public class Test {12 public static void main(String[] args) throws Exception {13 DesiredCapabilities capabilities = new DesiredCapabilities();14 capabilities.setCapability("browserName", "chrome");15 capabilities.setCapability("version", "latest");16 capabilities.setCapability("platform", "Windows 10");17 capabilities.setCapability("enableVNC", true);18 capabilities.setCapability("enableVideo", false);19 WebDriver driver = new org.openqa.selenium.remote.RemoteWebDriver(20 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);21 driver.findElement(By.xpath("/html/body/div/div[4]/form/div[2]/div/div/div/div/div[1]/input")).sendKeys("selenium");22 driver.findElement(By.xpath("/html/body/div/div[4]/form/div[2]/div/div/div/div/div[2]/div[2]/center/input[1]")).click();23 WebElement element1 = driver.findElement(By.xpath("/html/body/div/div[4]/form/div[2]/div/div/div/div/div[2]/div[2]/center/input[1]"));24 RemoteWebElement element2 = (RemoteWebElement) element1;25 WebElement element3 = element2.findElementByXPath("..");26 String text1 = element3.getText();27 String text2 = element1.getText();28 if (text1.equals(text2)) {29 System.out.println("true");30 } else {31 System.out.println("false");32 }

Full Screen

Full Screen

Selenium 4 Tutorial:

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.

Chapters:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

Selenium 101 certifications:

LambdaTest also provides certification for Selenium testing to accelerate your career in Selenium automation testing.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful