Budeme diskutovat a naučit se vyčerpávající využití třídy Akce v selenu napříč různými webovými operacemi. Akce Class in Selenium je široce používána k provádění různých webových operací, jako je pohyb myší a klávesnicí, což jsou pokročilé akce webového prohlížeče.
Myši Akce
Akce klávesnice
Třída akcí v selenu
Co je třída akcí v selenu:
Akce Class je třída ze Selenium Bundle Api z balíčku interakce org.openqa.selenium zvládnout kritické a urychlit webové interakce s uživateli prostřednictvím automatizace prohlížeče. Poskytuje uživatelům popisovač k provádění různých akcí myši a klávesnice pomocí různých výše zmíněných metod.
Budeme zde diskutovat o všech webových interakcích prostřednictvím třídy akcí v selenu, začneme s Naučíme se interakce myší a přejdeme ke třídě interakcí s klávesnicí KeyBoard v selenu.
Interakce myší - třída akcí v selenu
Přetáhněte selen
Drag and Drop in Selenium lze provést třemi různými přístupy s třídou Actions v Selenium:
Drag and Drop in Selenium with Action Class in Selenium via build method:
Potřebujeme mít dva webelementy k provádění Drag and Drop v selenu, jako je Source WebElement (který se má přetáhnout) a Destination WebElement (kde se má zrušit Source WebElement, tj. Destination WebElement). Níže uvedená metoda je přizpůsobená metoda ( které byste mohli použít k sestavení Framework WebUtils), které provádějí drag and drop v selenu a tato metoda vyžaduje dva argumenty, jeden je Source WebElement a další je Destination WebElement, jak bylo uvedeno výše:
public void dragAndDrop(Podle zdroje, Podle cíle) { try { WebElement sourceElement = driver.findElement(source); WebElement destinationElement = driver.findElement(destination); Tvůrce akcí = new Actions(driver); Akce dragAndDrop = builder.clickAndHold(sourceElement).moveToElement(destinationElement) .release(destinationElement).build(); dragAndDrop.perform(); BASE_LOGGER.info("Akce Drag and Drop byla úspěšně provedena "); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Došlo k chybě, tj.: " + exceptionData + " při provádění DragAndDrop "); } }
Chcete-li se dozvědět celý koncept přetahování a dostat se ke všem přístupům k provádění přetahování v selenu, klikněte sem.
ClickAndHold v Selenium
ClickAndHold je další důležitá metoda z třídy Akce (z balíčku org.openqa.selenium.interactions) v selenu do
nejprve proveďte operaci levým kliknutím na libovolný webElement a podržte ji bez uvolnění myši.
Tato metoda se používá hlavně při provádění scénářů přetažení, níže je ukázkový obrázek kódu:
MoveToElement v selenu
MoveToElement je metoda z třídy Akce v selenu k provedení přesunu do jiného WebElement (Destination Webelement), který tato metoda bere jako jeden příslušný argument.
Tato metoda se používá hlavně při provádění scénářů přetažení, níže je ukázkový obrázek kódu:
Poklepejte na selen
Chcete-li replikovat operaci dvojitého kliknutí pomocí myši, musíme provést dvojité kliknutí pomocí třídy Akce v selenu a můžeme to udělat v níže uvedeném přístupu:
public void doubleClick(By locator) { try { WebElement element = driver.findElement(locator); Akce akce = nové Akce(ovladač); actions.doubleClick(element).perform(); BASE_LOGGER.info("Dvakrát klikněte na prvek: " + lokátor); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Prvek není připojen k dokumentu stránky " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Prvek " + lokátor + " nebyl nalezen v DOM " + e.getCause().getMessage()); } catch (Výjimka e) { BASE_LOGGER.error("Prvek " + lokátor + " nebylo možné kliknout " + e.getCause().getMessage()); } }
Výše uvedený fragment kódu je metoda, která v zásadě bere argument jako lokátor, tj. WebElement, na kterém musí být provedeno dvojité kliknutí.
kontextové kliknutí nebo pravé kliknutí selenu
Chcete-li replikovat kontextové kliknutí nebo kliknutí pravým tlačítkem myši, musíme provést metodu kontextového kliknutí pomocí třídy Akce v selenu a můžeme to udělat v níže uvedeném přístupu:
public void kliknout vpravo(Podle lokátoru) { try { WebElement element = driver.findElement(locator); Akce akce = nové Akce(ovladač); actions.contextClick(element).perform(); BASE_LOGGER.info("Proveden kontext Klikněte na prvek: " + lokátor); } catch (StaleElementReferenceException e) { BASE_LOGGER.error("Prvek není připojen k dokumentu stránky " + e.getCause().getMessage()); } catch (NoSuchElementException e) { BASE_LOGGER.error("Prvek " + lokátor + " nebyl nalezen v DOM " + e.getCause().getMessage()); } catch (Výjimka e) { BASE_LOGGER.error("Prvek " + lokátor + " nebylo možné kliknout " + e.getCause().getMessage()); } }
Výše uvedený fragment kódu je metoda, která v zásadě bere argument jako lokátor, tj. WebElement, na kterém musí být provedeno dvojité kliknutí.
Pauza v selenu
Kdykoli chceme zavést časové zpoždění mezi různými akcemi, můžeme použít metodu pauzy mezi akčními operacemi, například řekněme, pokud chceme mít několik sekund zpoždění mezi operací přetažení a přetažení, pak můžeme zavolat pauzu ( ) metoda třídy akcí na selenu v níže uvedeném přístupu:
public void pauseBetweenActions(Podle zdroje,Podle cíle, int timeUnit) { try { WebElement sourceElement = driver.findElement(source); WebElement destinationElement = driver.findElement(destination); Tvůrce akcí = new Actions(driver); builder.clickAndHold(sourceElement).moveToElement(destinationElement).pause(timeUnit).release(destinationElement).build().perform(); BASE_LOGGER.info("Akce Drag and Drop byla úspěšně provedena "); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Došlo k chybě, tj.: " + exceptionData + " při provádění DragAndDrop "); } }
Ve výše uvedené metodě to trvá tři argumenty: jeden zdrojový WebElement, další argument je cílový prvek a poslední je pro timeUnit, tj. Časové zpoždění, které chceme zavést pomocí pause () v Selenium.
Myš se vznáší v selenu
Umístění kurzoru myši v operaci Selenium lze dosáhnout pomocí třídy Akce v Selenium, v zásadě, jakmile jsme v centru pozornosti s jakýmkoli webElementem a odtud chceme umístit kurzor myši na jakýkoli jiný prvek touto operací myši a tímto WebElementem, kde chceme, aby se náš kurzor myši nazýval Target WebElement.
Níže je fragment kódu pro stejné:
public void mouseHover(By targetedLocator) { try { WebElement targetedElement = driver.findElement(targetedLocator); Tvůrce akcí = new Actions(driver); builder.moveToElement(targetedElement).build().perform(); BASE_LOGGER.info("Úspěšně provedeno umístění myši v akci Selenium"); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); BASE_LOGGER.error("Došlo k chybě, tj. : " + výjimkaData + " při provádění pohybu myši v selenu "); } }
Chcete-li se dozvědět vše o Příkaz selenového webdriveru naleznete zde .
Akce na klávesnici - třída akcí v selenu
Co jsou akce klávesnice a kde jsou vyžadovány:
Akce klávesnice znamená, že operace jsou přímo prováděny z klávesnice, například řekněme, že se pokoušíme provádět Contrl + A společně nebo Control + C společně nebo provádíme Key Up nebo Keydown tlačítko z klávesnice při interakci s WebElements.
Můžeme provést několik interakcí s klávesnicí pomocí třídy Akce v selenu
poslat klíče v selenu :
Můžeme provést operaci sendKeys pomocí třídy Akce v selenu následujícím způsobem:
public void sendKeysWithActionClass(By locator) { try { WebElement element = driver.findElement(locator); Akce akce = nové Akce(ovladač); actions.sendKeys("Zadávání dat z klávesnice "); // Provádění akcí klávesnice po stisknutí kláves Control a c společně actions.sendKeys(Keys.CONTROL); actions.sendKeys("c"); actions.build().perform(); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); } }
KeyUp v selenu :
Podobně můžeme provádět operace KeyUp s třídou Akce v selenu následujícím způsobem:
public void keyUpWithActionClass(By locator) { try { WebElement element = driver.findElement(locator); Akce akce = nové Akce(ovladač); actions.sendKeys("Zadávání dat z klávesnice "); // Provádějte akce na klávesnici po stisknutí kláves Control a c spolu s akcí keyUp.keyUp(Keys.CONTROL); actions.sendKeys("c"); actions.build().perform(); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); } }
KeyDown v selenu
Můžeme provést operaci keyDown pomocí opět třídy Akce v selenu v níže uvedeném přístupu:
public void keyDownWithActionClass(By locator) { try { WebElement element = driver.findElement(locator); Akce akce = nové Akce(ovladač); actions.sendKeys("Zadávání dat z klávesnice "); // Provádějte akce klávesnice po stisknutí kláves Control a V spolu s akcí keyDown.keyDown(Keys.CONTROL); actions.sendKeys("v"); actions.build().perform(); } catch (Výjimka e) { String exceptionData = e.getCause().getMessage(); } }
Proč investovat do čističky vzduchu?: Tím jsme s třídou Actions hotovi v selenu, v nadcházejícím tutoriálu JavascriptExecutor v selenu modulárním, ale vyčerpávajícím způsobem. Učit se Příkaz Selenium je vyčerpávající můžete se zde také podívat na přípravu Kritické otázky týkající se selenu, na které se můžete obrátit zde.