Kuidas sisse pukseerida Selenium (Näide)

Drag and Drop sisse seleeni

Mõnel veebirakendusel on funktsioon veebielementide lohistamiseks ja määratud alale või elemendile pukseerimiseks. Me saame selliste elementide pukseerimise automatiseerida Selenium Veebidraiver.

Drag and Drop süntaks

Klassil Actions on kaks meetodit, mis toetavad lohistamist. Uurime neid -

Actions.dragAndDrop(Sourcelocator, Destinationlocator)

Kuidas sisse pukseerida Selenium

Siit saate teada, kuidas elementi kasutades pukseerida Selenium Veebidraiver

DragAndDrop meetodis edastame kaks parameetrit -

  1. Esimene parameeter "Sourcelocator" on element, mida peame lohistama
  2. Teine parameeter “Destinationlocator” on element, millele peame esimese elemendi maha panema
Actions.dragAndDropBy(Sourcelocator, x-axis pixel of Destinationlocator, y-axis pixel of Destinationlocator)

dragAndDropBy meetodil edastame 3 parameetrit -

  1. Esimene parameeter "Sourcelocator" on element, mida peame lohistama
  2. Teine parameeter on 2. x-telje piksli väärtusnd element, millele peame esimese elemendi maha panema.
  3. Kolmas parameeter on y-telje 2. elemendi piksli väärtus, millele peame esimese elemendi maha panema.

    Lohistage sisse Selenium

Näitame teile praktiliselt elemendi pukseerimist seleeni veebidraiveri abil järgmise kolme stsenaariumiga

1. stsenaarium: element BANK lohistatakse DragAndDrop meetodil konkreetsesse lahtrisse.

Järgmises koodis käivitame antud URL-i Firefox brauser ja seejärel lohistage element BANK ja kukutage dragAndDrop meetodi abil DEEBIT-POOL plokki.

Lohistage sisse Selenium

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.WebElement;		
import org.openqa.selenium.chrome.ChromeDriver;		
import org.openqa.selenium.interactions.Actions;		
import org.testng.annotations.Test;		

public class DragAndDrop {				

    WebDriver driver;			

    @Test		
    public void DragnDrop()					
    {		
         System.setProperty("webdriver.chrome.driver"," E://Selenium//Selenium_Jars//chromedriver.exe ");					
         driver= new ChromeDriver();					
         driver.get("https://demo.guru99.com/test/drag_drop.html");					
         
		//Element which needs to drag.    		
        	WebElement From=driver.findElement(By.xpath("//*[@id='credit2']/a"));	
         
         //Element on which need to drop.		
         WebElement To=driver.findElement(By.xpath("//*[@id='bank']/li"));					
         		
         //Using Action class for drag and drop.		
         Actions act=new Actions(driver);					

	//Dragged and dropped.		
         act.dragAndDrop(From, To).build().perform();		
	}		
}

Koodi selgitus: Ülaltoodud koodis käivitame antud URL-i Firefox brauser ja seejärel lohistage element BANK ja kukutage dragAndDrop meetodi abil DEEBIT-POOL plokki. Allpool lühidalt selgitatud:

Esiteks jäädvustame 1st element, mille peame lohistama muutujas "From".

WebElement From=driver.findElement(By.xpath("//*[@id='credit2']/a"));

Teiseks jäädvustame 2. elemendi, millele peame 1. elemendi muutujas “To” maha panema.

WebElement To=driver.findElement(By.xpath("//*[@id='bank']/li"));

Kolmandaks loome klassi Actions objekti, kasutades klassi Actions meetodeid.

Actions act=new Actions(driver);

Elemendi lohistamiseks kasutame Actions klassi meetodit dragAndDrop ja edastame parameetrid esimese elemendina (Sourcelocator) "From" ja teise elemendina (Destinationlocator) "To". Allpool olev rida lohistab 1st element ja kukutage see 2nd element.

act.dragAndDrop(From, To).build().perform();

Stsenaariumi täitmine.

Nüüd saate ülaltoodud skripti ükshaaval eclipse'ist käivitada, nagu on näidatud alloleval ekraanipildil.

Lohistage sisse Selenium

Siin on skripti käivitamise väljund

Lohistage sisse Selenium

2. stsenaarium: element BANK lohistatakse konkreetsesse lahtrisse DragAndDropBy meetodil.

Selle stsenaariumi korral käivitame antud URL-i brauseris ja lohistame seejärel elemendi PANK ja kukutame dragAndDropBy meetodi kaudu DEEBIT-POOLE plokki. DragAndDropBy jaoks peame leidma elemendi piksli.

Kuidas Pixeli leida?

Avage URL Chrome'is või Fire'isFox ja klõpsake sinist värvi noolt.

Järgmisena klõpsake mis tahes elemendil, mille pikslit soovite teada.

Leiate piksli elemendi kohal, nagu on näidatud alloleval ekraanipildil.

Lohistage sisse Selenium

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.WebElement;		
import org.openqa.selenium.chrome.ChromeDriver;		
import org.openqa.selenium.interactions.Actions;		
import org.testng.annotations.Test;		


public class DragAndDrop {				

    WebDriver driver;			
    @Test		
    public void DragnDrop()					
    {		
         System.setProperty("webdriver.chrome.driver","E://Selenium//Selenium_Jars//chromedriver.exe");					
         driver= new ChromeDriver();					
         driver.get("https://demo.guru99.com/test/drag_drop.html");					
     
	//Element(BANK) which need to drag.		
        WebElement From=driver.findElement(By.xpath("//*[@id='credit2']/a"));					
      
        //Using Action class for drag and drop.		
        Actions act=new Actions(driver);					
      
        //Drag and Drop by Offset.		
        act.dragAndDropBy(From,135, 40).build().perform();		
 }		
}

MÄRKUS: Pikslite väärtused muutuvad vastavalt ekraani eraldusvõimele ja brauseri suurusele. See meetod ei ole seetõttu usaldusväärne ja seda ei kasutata laialdaselt.

3. stsenaarium: vähe elemente lohistatakse ja seejärel kontrollitakse, kas teade kuvatakse või mitte.

Järgmises koodis käivitame brauseris antud URL-i ja lohistame seejärel elemendid nagu PANK, MÜÜK, 500 ja kukutame vastavale plokile. Kui see on tehtud, kontrollime väljundsõnumit.

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.WebElement;		
import org.openqa.selenium.chrome.ChromeDriver;		
import org.openqa.selenium.interactions.Actions;		
import org.testng.annotations.Test;		

public class DragAndDrop {				

    WebDriver driver;			
    @Test		
    public void DragnDrop()					
    {		
    	 System.setProperty("webdriver.chrome.driver"," E://Selenium//Selenium_Jars//chromedriver.exe");					
         driver= new ChromeDriver();					
         driver.get("https://demo.guru99.com/test/drag_drop.html");					
     
	//Element(BANK) which need to drag.		
     	 WebElement From1=driver.findElement(By.xpath("//*[@id='credit2']/a"));	
         
     	//Element(DEBIT SIDE) on which need to drop.		
     	WebElement To1=driver.findElement(By.xpath("//*[@id='bank']/li"));					
      
	//Element(SALES) which need to drag.		
     	WebElement From2=driver.findElement(By.xpath("//*[@id='credit1']/a"));
        
	//Element(CREDIT SIDE) on which need to drop.  		
     	WebElement To2=driver.findElement(By.xpath("//*[@id='loan']/li"));					
     
     	//Element(500) which need to drag.		
        WebElement From3=driver.findElement(By.xpath("//*[@id='fourth']/a"));					
        
        //Element(DEBIT SIDE) on which need to drop.		
     	WebElement To3=driver.findElement(By.xpath("//*[@id='amt7']/li"));					
         
	//Element(500) which need to drag.		
        WebElement From4=driver.findElement(By.xpath("//*[@id='fourth']/a"));					
        
        //Element(CREDIT SIDE) on which need to drop.		
     	WebElement To4=driver.findElement(By.xpath("//*[@id='amt8']/li"));					
      
	//Using Action class for drag and drop.		
     	Actions act=new Actions(driver);					

	//BANK drag and drop.		
     	act.dragAndDrop(From1, To1).build().perform();
        
	//SALES drag and drop.		
     	act.dragAndDrop(From2, To2).build().perform();
        
	//500 drag and drop debit side.		
     	act.dragAndDrop(From3, To3).build().perform();	
        
	//500 drag and drop credit side. 		
     	act.dragAndDrop(From4, To4).build().perform();		
      
	//Verifying the Perfect! message.		
	if(driver.findElement(By.xpath("//a[contains(text(),'Perfect')]")).isDisplayed())							
     	{		
         	System.out.println("Perfect Displayed !!!");					
     	}
		else
     	{
        	System.out.println("Perfect not Displayed !!!");					
     	}		
}

Väljundi analüüs

Menüüs Väljund näete, et element lohistatakse määratletud elemendile. Saate kontrollida väljundi GIF-i.

kokkuvõte

  • Ülaltoodud õpetustes illustreerime veebirakenduse pukseerimisfunktsiooni veebidraiveri toimingumeetodite kaudu:
  • dragAndrop (allikaotsija, sihtkoha lokaator)
  • dragAndDropBy (allikalokaator, sihtkoha asukoha määraja x-telje piksel, sihtkoha asukoha määraja y-telje piksel)
  • Elemendi pukseerimiseks kasutasime kõigepealt klassi Actions meetodit DragAndDrop, milles edastame 2 parameetrit, 1st parameeter on element, mida peame lohistama, ja 2nd parameeter on element, millele peame 1 viskamast element.
  • Teiseks kasutasime meetodit dragAndDropBy klassist Actions, milles edastame 3 parameetrit, esimene parameeter on element, mida peame lohistama, 1nd parameeter on 2. x-telje piksli väärtusnd element, 3rd parameeter on y-telje piksli väärtus 2nd element.