top 25 selenium webdriver commands that you should know
Най-добрите команди на Selenium WebDriver - Феноменално ръководство за тестери за автоматизация
Selenium WebDriver е един от най-популярните инструменти за автоматизация на уебсайтове с отворен код. Повечето от моите колеги тестери за автоматизация предпочитат комбинацията от WebDriver с Java.
В този урок ще обсъдя 25 рутинно използвани команди Selenium WebDriver заедно със съответния синтаксис и прости примери за лесното ви разбиране.
Какво ще научите:
- Видове команди в WebDriver
- Топ 7 селенови команди с подробности
- Списък с 25 по-популярни команди и примери за WebDriver
- # 1) get ()
- # 2) getCurrentUrl ()
- # 3) findElement (By, by) и щракнете ()
- # 4) isEnabled ()
- # 5) findElement (By, by) с sendKeys ()
- # 6) findElement (By, by) с getText ()
- # 7) Изпращане ()
- # 8) findElements (от, от)
- # 9) findElements (By, by) с размер ()
- # 10) pageLoadTimeout (време, единица)
- # 11) implicitlyWait ()
- # 12) untill () и visibilityOfElementLocated ()
- # 13) untill () и alertIsPresent ()
- # 14) getTitle ()
- # 15) Изберете
- # 16) навигация ()
- # 17) getScreenshotAs ()
- # 18) moveToElement ()
- # 19) dragAndDrop ()
- # 20) switchTo () и accept (), dismiss () и sendKeys ()
- # 21) getWindowHandle () и getWindowHandles ()
- # 22) getConnection ()
- # 23) ТОГАВА
- # 24) assertEquals (), assertNotEquals (), assertTrue () и assertFalse ()
- # 25) close () и quit ()
- Заключение
- Препоръчително четене
Видове команди в WebDriver
В последен урок за Селен , обсъдихме различни видове сигнали срещани при тестване на уеб-базирани приложения и техните ефективни начини за работа. Обсъдихме дълго и двата вида сигнали, т.е. „уеб базирани сигнали“ и „предупреждения, базирани на прозорец“. Също така ви запознахме с поредната помощна програма, базирана на Java, наречена „Робот клас“ за обработка на изскачащи прозорци, базирани на Windows.
Напредване напред тази серия уроци на Selenium WebDriver , щяхме да натискаме различни често и рутинно използвани команди на Selenium WebDriver . Ние ще обсъдим точно и накратко всяка от тези команди на Selenium, за да ви направим способни да използвате тези команди ефективно, когато възникне ситуацията.
Всеки работен файл за автоматизация на Java започва със създаване на справка за уеб браузър, който искаме да използваме, както е споменато в синтаксиса по-долу.
Има няколко метода, които са достъпни от интерфейса на Webdriver. Тези методи са достъпни с помощта на променливата на инстанцията шофьор в прост формат driver.methodName (); . Всички тези проекти за автоматизация включват извикване на тези методи и сравняване и оценка на това, което всъщност връщат.
С прости думи, ние обикновено можем да класифицираме командите на Webdriver като:
- Команди на браузъра,
- Вземете команди,
- Команди за навигация,
- Команди на Webelement,
- Команди за действие и
- Команди за резултат.
От контекста на ръчното тестване резултатът от тест, PASS или FAIL се определя от командите Result, които обикновено сравняват очакваните и действителните резултати, а останалите са стъпки от Testcase.
Топ 7 селенови команди с подробности
Само за да имаме груба идея, ще обсъдим следните команди на Selenium WebDriver и техните различни версии:
- получи () методи
- Намиране на връзки от linkText () и частиченLinkText ()
- Избиране на множество елементи в падащо меню
- Подаване на формуляр
- Работа с рамки
- близо() и изход () методи
- Обработка на изключения
# 1) get () Методи
Команда WebDriver | Употреба |
---|---|
getAttribute () | • Командата се използва за извличане на стойността на посочения атрибут • Командата изисква единичен параметър на низа, който се отнася до атрибут, чиято стойност се стремим да знаем и връща стойност на низ като резултат. driver.findElement (By.id ('findID')). getAttribute ('стойност'); |
получи () | • Командата стартира нов браузър и се отваря посочения URL в екземпляра на браузъра • Командата взема един параметър от тип низ, който обикновено е URL на тестваното приложение • За потребителите на Selenium IDE командата може да изглежда много като команда за отваряне driver.get ('https://google.com'); |
getClass () | Командата се използва за извличане на обекта Class който представлява клас на изпълнение на този обект driver.getClass (); |
getCurrentUrl () | • Командата се използва за извличане на URL адреса на уеб страницата, до която потребителят има достъп в момента • Командата не изисква никакъв параметър и връща стойност на низ driver.getCurrentUrl (); |
getPageSource () | • Командата се използва за извличане на източника на страницата на уеб страницата, до която потребителят има достъп в момента • Командата не изисква никакъв параметър и връща стойност на низ • Командата може да се използва с различни низови операции като contains () за установяване на наличие на посочената стойност на низ boolean result = driver.getPageSource (). contains ('String to find'); |
getTitle () | • Командата се използва за извличане на заглавието на уеб страницата, върху която потребителят работи в момента. Връща се нулев низ, ако уеб страницата няма заглавие • Командата не изисква никакъв параметър и връща подрязана стойност на низа Заглавие на низа = driver.getTitle (); |
getText () | • Командата се използва за извличане на вътрешния текст на посочения уеб елемент • Командата не изисква никакъв параметър и връща стойност на низ • Това е и една от широко използваните команди за проверка на съобщения, етикети, грешки и др на уеб страниците. Текст на низа = driver.findElement (By.id ('Текст')). GetText (); |
getWindowHandle () | • Командата се използва за справяне със ситуацията, когато имаме повече от един прозорец, с който да се справим. • Командата ни помага да преминем към новоотворения прозорец и да изпълнява действия в новия прозорец. Потребителят може също да се върне към предишния прозорец, ако желае. private String winHandleBefore; winHandleBefore = driver.getWindowHandle (); driver.switchTo (). window (winHandleBefore); |
getWindowHandles () | • Командата е подобна на тази на „getWindowHandle ()“ с тънката разлика, че помага да се работи с множество прозорци, т.е. когато трябва да се справим с повече от 2 прозореца. |
Кодовият фрагмент за „getWindowHandles ()“ е даден по-долу:
public void explicitWaitForWinHandle(final WebDriver dvr, int timeOut, final boolean close) throws WeblivException { try { Wait wait = new WebDriverWait(dvr, timeOut); ExpectedCondition condition = new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { int winHandleNum = d.getWindowHandles().size(); if (winHandleNum > 1) { // Switch to new window opened for (String winHandle : d.getWindowHandles()) { dvr.switchTo().window(winHandle); // Close the delete window as it is not needed if (close && dvr.getTitle().equals('Demo Delete Window')) { dvr.findElement(By.name('ok')).click(); } } return true; } return false; } };
# 2) Намиране на връзки чрез linkText () и delLinkText ()
Нека използваме „google.com“ и „abodeqa.com“ linkText () и ParcialLinText () методи на WebDriver.
Гореспоменатите връзки могат да бъдат достъпни чрез следните команди:
шофьор .findElement (By.linkText ( „Google“ щракнете ();
шофьор .findElement (By.linkText ( AbodeQA щракнете ();
Командата намира елемента, използвайки текст на връзката и след това щракнете върху него и по този начин потребителят ще бъде пренасочен към съответната страница.
Гореспоменатите връзки също могат да бъдат достъпни чрез следните команди:
шофьор .findElement (By.partialLinkText ( „Goo“ щракнете ();
шофьор .findElement (By.partialLinkText ( „Обиталище“ щракнете ();
Горните две команди намират елементите въз основа на подниза на връзката, предоставена в скобата и по този начин парциален LinkText () намира уеб елемента с посочения подниз и след това щраква върху него.
# 3) Избиране на множество елементи в падащото меню
Има предимно два вида падащи менюта:
- Падащо меню с един избор : Падащо меню, което позволява да се избира само една стойност в даден момент.
- Падащо меню с няколко избора : Падащо меню, което позволява да се избират няколко стойности наведнъж.
Помислете за HTML кода по-долу за падащо меню, което може да избере няколко стойности едновременно.
Red Green Yellow Grey
Кодовият фрагмент по-долу илюстрира множеството селекции в падащо меню.
// select the multiple values from a dropdown Select selectByValue = new Select(driver.findElement(By.id('SelectID_One'))); selectByValue.selectByValue('greenvalue'); selectByValue.selectByVisibleText('Red'); selectByValue.selectByIndex(2);
# 4) Подаване на формуляр
Повечето или почти всички уебсайтове имат формуляри, които трябва да бъдат попълнени и изпратени по време на тестване на уеб приложение. Потребителят може да срещне няколко типа формуляри като формуляр за вход, формуляр за регистрация, формуляр за качване на файлове, формуляр за създаване на профил и т.н.
В WebDriver потребителят се възползва от метод, който е специално създаден за изпращане на формуляр. Потребителят може също да използва метод на щракване, за да щракне върху бутона за изпращане като заместител на бутона за изпращане.
Вижте кодовия фрагмент по-долу спрямо горния формуляр за „нов потребител“:
// enter a valid username driver.findElement(By. id ('username')).sendKeys('name'); // enter a valid email address driver.findElement(By. id ('email')).sendKeys('name@abc.com'); // enter a valid password driver.findElement(By. id ('password')).sendKeys('namepass'); // re-enter the password driver.findElement(By. id ('passwordConf')).sendKeys('namepass'); // submit the form driver.findElement(By. id ('submit')).submit();
По този начин, веднага щом контролът на програмата намери метода за подаване, той локализира елемента и задейства Изпращане() метод на намерения уеб елемент.
# 5) Работа с рамки
Докато автоматизираме уеб приложенията, може да има ситуации, в които се изисква да работим с множество кадри в прозорец. По този начин от разработчика на тестови скриптове се изисква да превключва напред-назад между различни рамки или рамки за този факт.
Вградената абревиатура на рамка като iframe се използва за вмъкване на друг документ в текущия HTML документ или просто уеб страница в друга уеб страница, като разреши влагане.
Помислете за следния HTML код, съдържащ iframe в уеб страницата:
Software Testing Help - iframe session
Горният HTML код илюстрира наличието на вграден iframe в друг iframe. По този начин, за да има достъп до дъщерната рамка, потребителят трябва първо да отиде до родителската рамка. След извършване на необходимата операция, от потребител може да се наложи да се върне обратно към родителския iframe, за да се справи с другия елемент на уеб страницата.
Невъзможно е, ако потребителят се опита да осъществи директен достъп до детето iframe, без първо да премине към родителския iframe.
Изберете iframe по id
шофьор .switchTo (). frame ( ' ИД на рамката ' );
Намиране на iframe с помощта на tagName
Докато намира локалната рамка, потребителят може да срещне известни проблеми, ако рамката не е присвоена със стандартни свойства. Става сложен процес за намиране на рамката и превключване към нея. За да коригира ситуацията, на потребителя се възползва да намери iframe с помощта на метод tagName, подобен на начина, по който намираме всеки друг уеб елемент в WebDriver.
driver.switchTo (). frame (driver.findElements (By.tagName („iframe”). get (0));
Горната команда локализира първия уеб елемент с посочения tagName и превключва към този iframe. „Get (0) се използва за намиране на iframe със стойността на индекса.“ По този начин, в редове с нашия HTML код, горният синтаксис на кода ще доведе до превключване на програмата за управление на „ParentFrame“.
Намиране на iframe с помощта на индекса:
а) рамка (индекс)
driver.switchTo (). frame (0);
б) рамка (име на кадър)
driver.switchTo (). frame („име на кадъра“);
в) рамка (елемент WebElement)
Изберете родителски прозорец
driver.switchTo (). defaultContent ();
Горната команда връща потребителя обратно към оригиналния прозорец, т.е.от двата iframe-а.
# 6) close () и quit () методи
В WebDriver има два типа команди за затваряне на екземпляра на уеб браузъра.
а) затвори () : Методът close () на WebDriver затваря прозореца на уеб браузъра, върху който потребителят работи в момента, или можем също да кажем прозореца, който в момента е достъпен от WebDriver. Командата нито изисква никакъв параметър, нито връща някаква стойност.
б) изход () : За разлика от метода close (), методът quit () затваря всички прозорци, които програмата е отворила. Подобно на метода close (), командата нито изисква параметри, нито връща някаква стойност.
Вижте по-долу кодови фрагменти:
шофьор .близо(); // затваря само един прозорец, който в момента е достъпен от екземпляра на WebDriver
шофьор .quit (); // затваря всички прозорци, отворени от екземпляра WebDriver
# 7) Обработка на изключения
Изключение правят условията или ситуации, които спират неочаквано изпълнението на програмата.
Причини за такива условия могат да бъдат:
- Грешки, въведени от потребителя
- Грешки, генерирани от програмиста
- Грешки, генерирани от физически ресурси
По този начин, за да се справим с тези неочаквани условия, беше концептуализирано обработването на изключения.
По отношение на Java кода, който ние прилагаме, докато автоматизираме уеб приложение, може да бъде затворен в блок, който е в състояние да осигури механизъм за обработка срещу грешни условия.
Улавяне на изключение
За да хванем изключение, използваме блока по-долу код
try{ // Protected block // implement java code for automation } catch (ExceptionName e) { // catch block - Catches the exceptions generated in try block without halting the program execution }
Ако в блока за опит / защитения блок възникне някакво изключение, тогава контролите за изпълнение проверяват блок за хващане за съответстващия тип изключение и му предават изключението, без да нарушават изпълнението на програмата.
Множество блокове за улов
try{ //Protected block } catch (ExceptionType1 e) { // catch block } catch (ExceptionType2 e) { // catch block } catch (ExceptionType3 e) { // catch block }
В горния код е възможно изключение да бъде уловено в първия блок за улов, ако типът на изключението съвпада. Ако типът на изключението не съвпада, тогава изключението се прехвърля към втория блок за хващане и третия блок за хващане и така, докато всички блокове за хващане бъдат посетени.
Условия на WebDriver и обработка на изключения
Когато се стремим да проверим наличието на който и да е елемент на уеб страницата, използвайки различни условни команди на WebDriver, WebDriver предполага, че уеб елементът присъства на уеб страницата. Ако уеб елементът не присъства на уеб страницата, условните команди извеждат “NoSuchElementPresentException”. По този начин, за да избегнем подобни изключения от спиране на изпълнението на програмата, използваме механизми за обработка на изключения. Вижте кодовия фрагмент по-долу:
WebElement saveButton = driver.findElement(By.id('Save')); try{ if(saveButton.isDisplayed()){ saveButton.click(); } } catch(NoSuchElementException e){ e.printStackTrace(); }
Списък с 25 по-популярни команди и примери за WebDriver
По-долу е даден списъкът с 25-те рутинно използвани команди Webdriver, които всеки тестер за автоматизация трябва да знае.
Нека да разгледаме подробно тези команди една по една.
Допълнително четене => Урок за селен WebDriver
# 1) get ()
Команда, използваща get (), за да отворите URL в текущия браузър.
Командата по-долу ще отвори посочения URL адрес „https://www.softwaretestinghelp.com“ в браузъра.
Синтаксис:
driver.get('https://www.softwaretestinghelp.com');
Обяснение:
- Придвижете се до URL адреса https://www.softwaretestinghelp.com
# 2) getCurrentUrl ()
Команда с помощта на getCurrentUrl (), за да проверите дали URL адресът е правилен.
Командата по-долу получава текущия URL във формата на низа.
Синтаксис:
как да поправя шлюз по подразбиране не е наличен windows 10
driver.getCurrentUrl();
Обикновено използваме този метод в команди, за да проверим дали сме преминали към правилната страница, както се очаква. За това трябва да използваме Assert, както е показано по-долу Пример .
Синтаксис:
Assert.assertEquals(expectedUrl, driver.getCurrentUrl());
Където очаква URL е URL, който се очаква във формата на низа.
Обяснение:
- Проверете и проверете дали зареденият URL адрес остава същият и че правилната страница е заредена.
# 3) findElement (By, by) и щракнете ()
findElement (By, by) и щракнете (), за да кликнете върху който и да е елемент от уеб страницата.
Методът findElement (By, by) търси и локализира първия елемент на текущата страница, който отговаря на критериите, дадени като параметър. Този метод обикновено се използва в команди за симулиране на потребителски действия като щракване, изпращане, въвеждане и т.н.
Командата по-долу търси и локализира първия елемент в уеб страницата с идентификатор ”submit1” и кликва върху него, ако не е покрит.
Синтаксис:
driver.findElement(By.id('submit1')).click();
Елементът може да бъде разположен с помощта на документ за самоличност , Име , Клас Име , Име на маркера , Текст на връзката и Текст на частична връзка , CSS селектор и X Път .
Обяснение:
- Потърсете необходимия бутон Submit.
- Щракнете върху бутона.
Командата по-долу избира елемент от списъчното поле.
Синтаксис:
WebElement roleDropdown = driver.findElement(By.id('name1'); roleDropdown.click();
Обяснение:
- Потърсете и намерете елемента от списъка с идентификатор “name1”.
- Кликнете върху този елемент.
# 4) isEnabled ()
isEnabled (), за да проверите дали елементът е активиран или деактивиран в Selenium WebDriver.
За да проверим дали даден елемент е активиран в уеб страница, използваме метода isEnabled ().
Синтаксис:
boolean textBox = driver.findElement(By.xpath('//input(@name='textbox1')')).isEnabled();
Обяснение:
- Намира елемента в уеб страницата според xpath и проверява дали елементът е активиран.
# 5) findElement (By, by) с sendKeys ()
findElement (By, by) с sendKeys () за въвеждане в полетата на формуляра.
Проверки за проверка на формуляра чрез въвеждане на различни потребителски входове, които често се изискват при тестване за автоматизация. Използваме findElement (By, by) за намиране на полетата и sendKeys (), за да въведем някакво съдържание в поле за редактиране.
Командата по-долу използва локатора на име, за да намери полето на формуляра и напише „Aaron“ в него.
Синтаксис:
driver.findElement(By.name('name')).sendkeys('Aaron');
Обяснение:
- Потърсете задължителното поле за име във формуляра.
- Въведете стойността „Aaron“ в него.
# 6) findElement (By, by) с getText ()
findElement (By, by) с getText () за съхраняване на стойността на целевия уеб елемент.
GetText () е метод, който ви дава вътрешния текст на уеб елемента. Получаване на текст е текстът в HTML таговете.
Кодът по-долу намира елемента с tagName “select” и получава текста вътре в маркера и го съхранява в падащо меню с променлива. Сега String dropDown може да се използва за по-нататъшни действия вътре в програмата.
Синтаксис:
String dropDown = driver.findElement(By.tagName('dropdown1')).getText();
Обяснение:
- Потърсете задължителното поле във формуляра, който има tagName “dropdown1”.
- Вземете текста вътре в неговия HTML таг.
- Съхранявайте текста в String обект „DropDown“.
# 7) Изпращане ()
Изпратете (), за да изпратите уеб формуляр.
Методът click (), който обсъдихме по-горе, може да се използва за щракване върху всякакви връзки или бутони. Submit () е по-добра алтернатива на click (), ако елементът, върху който трябва да се щракне, е бутон за изпращане. Бутонът за изпращане е вътре в HTML маркера „form“, а типът бутон е „submit“ (не „button“).
Изпратете () улеснява живота, като автоматично намира бутона и метода, които могат да бъдат добавени към всяко друго поле като име или имейл адрес. В случай на щракване трябва да използваме метода findElement (By, by) и да посочим правилните локатори.
В някои сценарии, при които действието се извършва чрез елементи, различни от бутон, submit () работи и кликването () няма.
Синтаксис:
driver.findElement(By.xpath('//input(@name='comments')')).submit();
Обяснение:
- Намерете елемент в дадения x път с име ‘коментари’.
- Изпратете формуляра.
# 8) findElements (от, от)
findElements (By, by), за да получите списъка с уеб елементи.
Понякога може да искаме да отпечатаме или да извършим действие върху списък от уеб елементи като връзки или полета за въвеждане в уеб страница. В такъв случай използваме findElements (By, by).
Синтаксис:
List allChoices = dropDown.findElements(By.xpath('.//fruitoption'));
Обяснение:
- Списък с всички уеб елементи с посочен xpath се съхранява в списъка на webelement allChoices.
# 9) findElements (By, by) с размер ()
findElements (By, by) с size (), за да се провери дали има елемент.
findElements (By, by) може да се използва, за да се провери дали елемент действително присъства в уеб страницата.
Командата по-долу се използва, ако искаме да проверим дали елемент с конкретен локатор присъства в уеб страница. Ако size ()! = 0, тогава елементът присъства.
Синтаксис:
Boolean checkIfElementPresent= driver.findElements(By.xpath('//input(@id='checkbox2')')).size()!= 0;
Обяснение:
- Намирането на елемент е посочено в xpath с id ‘checkbox2’.
- Според размера на списъка с елементи, Boolean checkIfElementPresent ще бъде зададен на TRUE или FALSE.
# 10) pageLoadTimeout (време, единица)
pageLoadTimeout (време, единица), за да зададете времето за зареждане на страница.
Понякога поради проблеми със сървъра или закъснения в мрежата, дадена страница може да отнеме повече от обичайното време за зареждане. Това може да доведе до грешка в програмата. За да избегнем това, задаваме време на изчакване и pageLoadTimeout () е един от тези методи. Това обикновено следва командата get ().
Синтаксис:
driver.manage().timeouts().pageLoadTimeout(500, SECONDS);
Обяснение:
- Изчакайте 500 секунди, за да се зареди страница.
# 11) implicitlyWait ()
implicitlyWait (), за да зададете време на изчакване преди търсене и намиране на уеб елемент.
Какво се случва, ако Webdriver се опита да намери елемент, преди уеб страницата да се зареди и елементът да се появи? NoSuchElementExeption ще бъде хвърлен. За да избегнем това, можем да добавим команда за неявно изчакване на определен период от време, преди да намерим елемента.
Синтаксис:
driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);
Обяснение:
- Имплицитно изчакайте 1000 секунди, преди да изпълните следващия ред в кода.
# 12) untill () и visibilityOfElementLocated ()
untill () от WebdriverWait и visibilityOfElementLocated () от ExpectedConditions, за да изчакате изрично, докато елемент се види в уеб страницата.
За да се справят със случаи, когато елемент отнема твърде много време, за да бъде видим на уеб страницата на софтуера, прилагайки неявно изчакване, става сложно. В този случай можем да напишем коментар, за да изчакаме, докато елементът се появи на уеб страницата. Тази команда използва комбинация от метод while () от класа WebdriverWait и метод visibilityOfElementLocated () от класа ExpectedConditions.
Синтаксис:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated (By.xpath('//input(@id=’name’)')));
Обяснение:
- Първият ред казва колко време да чакате, което е 10 секунди.
- Второто условие казва очаквано състояние, което трябва да се изчака. Тук това е елемент с id’name ’в споменатия xpath.
# 13) untill () и alertIsPresent ()
untill () от WebdriverWait и alertIsPresent () от ExpectedConditions да изчакате изрично, докато се появи предупреждение.
В някои сценарии трябва да изчакаме сигнали, за да продължим теста. В този случай използваме команда, използваща метода till () от класа WebdriverWait и метода alertIsPresent () от класа ExpectedConditions.
Моля, вижте командата по-долу:
WebDriverWait wait = new WebDriverWait(driver, 10); WebElement element = wait.until(ExpectedConditions.alertIsPresent() );
Обяснение:
- Първият ред казва колко време да чакате - това е 10 секунди.
- Второто условие казва очаквано състояние, което трябва да се изчака. Тук е изскачащ сигнал.
# 14) getTitle ()
getTitle (), за да получите заглавие на страницата в уеб драйвера на Selenium.
Синтаксис:
String title = driver.getTitle(); System.out.println(title);
Това обикновено се използва за отпечатване на заглавието в изходните дневници.
Обяснение:
- Вземете заглавието на уеб страницата и го съхранявайте в заглавието на обекта String.
- Отпечатайте стойността, съхранена в заглавието, в изходните дневници.
# 15) Изберете
Изберете клас за избор и премахване на избора на стойности от падащото меню в Selenium WebDriver.
Често имаме сценарии, свързани с падащото меню. За справяне с това се използват методи от класа Select. Можем да използваме selectByVisibleText (), selectByValue () или selectByIndex () според сценария.
Синтаксис:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.selectByVisibleText('Apple');
Обяснение:
- Намерете падащото меню, като използвате идентификационния номер „select“.
- Изберете видимия текст „Apple“ от падащото меню.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.selectByValue('Apple')
Обяснение:
- Намерете падащото меню, като използвате идентификационния номер „select“.
- Изберете текста от стойността „Apple“ от падащото меню.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.selectByIndex(1);
Обяснение:
- Намерете падащото меню, като използвате идентификационния номер „select“.
- Изберете падащия елемент със стойност на индекса „1“ от падащото меню (Втори елемент).
Подобно на select, можем да отменим избора на стойности от падащото меню, използвайки подобни команди.
Моля, проверете командите:
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); dropdown.deselectByVisibleText('Apple');
Обяснение:
- Намерете падащото меню, като използвате идентификационния номер „select“.
- Премахнете избора на видимия текст „Apple“ от падащото меню.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); Dropdown.deselectByValue('Apple');
Обяснение:
- Намерете падащото меню, като използвате идентификационния номер „select“.
- Дезактивирайте текста от стойността „Apple“ от падащото меню.
WebElement mySelectedElement = driver.findElement(By.id('select')); Select dropdown= new Select(mySelectedElement); listbox.deselectByIndex(1);
Обяснение:
- Намерете падащото меню, като използвате идентификационния номер „select“.
- Деактивирайте падащия елемент със стойността на индекса „1“ от падащото меню (Втори елемент).
navigate () за навигация между URL адресите.
Често виждаме сценарии, в които може да се наложи да навигирате от целевия URL адрес и след това да се върнете назад или напред. В такива случаи вместо да използваме get (), можем да използваме navigate (). В Navigate можем да използваме методите back () и forward (), без да посочваме URL адресите.
Синтаксис:
driver.navigate().to('https://www.softwaretestinghelp.com'); driver.navigate().back(); driver.navigate().forward();
Обяснение:
- Отворете https://www.softwaretestinghelp.com
- Навигирайте обратно.
- Придвижете се напред.
# 17) getScreenshotAs ()
getScreenshotAs (), за да заснемете цялата екранна снимка на страницата в Selenium WebDriver.
Това често се изисква, за да запазите подробностите за работата си или понякога за ръчна проверка на изходите. Командата по-долу се използва за правене на екранна снимка и запис в изходен файл.
Синтаксис:
File shot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(shot, new File('D:\ shot1.jpg'));
Обяснение:
- Направете екранна снимка и запазете файла в обект.
- Запазете файла в D устройство като shot1.png.
# 18) moveToElement ()
moveToElement () от класа „Действия“, за да симулира ефект на задържане на мишката.
Има сценарии, при които трябва да задържим курсора на мишката върху уеб елементи като над менюто, за да видим подменюто, връзки, за да видим цветови промени и т.н. В тези случаи използваме клас Действия. Погледнете синтаксиса по-долу за клас Action.
Синтаксис:
Actions actions = new Actions(driver); WebElement mouseHover = driver.findElement(By.xpath('//div(@id='mainmenu1')/div')); actions.moveToElement(mouseHover); actions.perform();
Обяснение
- Намерете и намерете уеб елемента с div id ‘mainmenu1’.
- Преместете показалеца на мишката към елемента.
# 19) dragAndDrop ()
dragAndDrop () от клас Действия, за да плъзнете елемент и да го пуснете върху друг елемент.
В някои сценарии може да искаме да плъзгаме елементи. Например, плъзнете изображение на сцената. В този случай можем да използваме класа Action.
В метода dragAndDrop предаваме двата параметъра, Source locator - елементът, който искаме да плъзнем, и Destination locator - елемента, към който искаме да се откажем.
Синтаксис:
WebElement sourceLocator = driver.findElement(By.xpath('//*(@id='image1')/a')); WebElement destinationLocator = driver.findElement(By.xpath('//*(@id='stage')/li')); Actions actions=new Actions(driver); actions.dragAndDrop(sourceLocator, destinationLocator).build().perform();
Обяснение:
- Намерете и намерете изходния уеб елемент.
- Намерете и намерете уеб елемента на местоназначението.
- Плъзнете и пуснете елемента източник върху целевия елемент.
# 20) switchTo () и accept (), dismiss () и sendKeys ()
switchTo () и accept (), dismiss () и sendKeys () методи от клас Alert, за да превключите към изскачащи сигнали и да ги обработвате.
За да превключим към сигнали, изскачащи прозорци и да ги обработваме, използваме комбинацията от преминат към() и accept (), dismiss () методи от клас Alert.
Синтаксис:
Alert alert = driver.switchTo().alert(); alert.sendKeys('This Is Softwaretestinghelp'); alert.accept()
Обяснение:
- Преминете към прозореца за предупреждение.
- Въведете “This Is Softwaretestinghelp” в предупреждението.
- Приемете сигнала и го затворете.
alert.dismiss () може да се използва за отхвърляне на предупреждението.
# 21) getWindowHandle () и getWindowHandles ()
getWindowHandle () и getWindowHandles () за обработка на множество Windows в Selenium WebDriver.
най-добрият шпионски софтуер за мобилни телефони с Android
Има много случаи, когато уеб приложенията имат много рамки или прозорци.
Това са предимно реклами или изскачащи прозорци с информация. Можем да обработваме множество прозорци, като използваме Windows Handlers. Webdriver съхранява уникален идентификатор на прозорец за всеки прозорец. Използваме този идентификатор, за да се справим с тях.
Синтаксис:
String handle= driver.getWindowHandle(); Set handle= driver.getWindowHandles();
Горните команди се използват за получаване на идентификатори на прозорци съответно на текущия прозорец и всички прозорци. Моля, вижте цикъла по-долу, за да видите как можем да преминем към всеки прозорец през for цикъл.
for (String handle : driver.getWindowHandles()){ driver.switchTo().window(handle); }
Обяснение:
- За всеки идентификатор на дръжка на прозорец от driver.getWindowHandles () превключете към този идентификатор на прозореца.
# 22) getConnection ()
getConnection () от DriverManager за стартиране на връзка с база данни.
За да стартираме връзка с база данни, използваме getConnection от класа DriverManager.
Синтаксис:
DriverManager.getConnection(URL, 'username', 'password' )
Обяснение:
- Свържете се с базата данни чрез URL и идентификационни данни.
# 23) ТОГАВА
POI за четене от Excel файловете.
При тестването, управлявано от данни, често запазваме входящите данни в Excel файл и го четем. За да направим това в WebDriver, ние импортираме POI пакет и след това използваме командата по-долу.
Синтаксис:
Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet sheet = workbook.getSheetAt(0);
Обяснение:
- Създайте файл за четене.
- Прочетете файла.
# 24) assertEquals (), assertNotEquals (), assertTrue () и assertFalse ()
Утвърждава с помощта на assertEquals (), assertNotEquals (), assertTrue () и assertFalse () за сравняване на резултатите.
Твърденията се използват за сравняване на очакваните и действителните резултати. Подаване или неуспех на тест обикновено се решава от резултата от твърденията. При автоматизацията се използват различни видове утвърждаване.
Синтаксис:
Assert.assertEquals(message, “This text”); Assert.assertNotEquals(message, “This text”); Assert.assertTrue(result<0); Assert.assertFalse(result<0);
Обяснение:
- В първата команда, когато очакваните и действителните стойности са еднакви, твърдението преминава без изключение. т.е. ако съобщението е „Този текст“, тогава твърдението преминава.
- Във втората команда, когато очакваните и действителните стойности са еднакви, твърдението се проваля с изключение. т.е., ако съобщението е „Този текст“, тогава твърдението е неуспешно.
- В третата команда, ако условието премине, твърдението преминава. т.е. ако резултат<0, then the assertion passes.
- В четвъртата команда, ако условието премине, твърдението е неуспешно. т.е. ако резултат<0, then the assertion fails.
# 25) close () и quit ()
close () и quit (), за да затворите прозорци и екземпляри на драйвери.
Тези команди се използват в края на всяка програма за автоматизация.
Синтаксис:
driver.close() driver.quit()
Обяснение:
Първата команда затваря текущия прозорец.
Втората команда излиза от този екземпляр на драйвера, затваряйки всеки асоцииран прозорец, който се отваря.
Заключение
В този урок представихме различни и често използвани команди на WebDriver. Опитахме се да обясним командите с подходящи примери и кодови фрагменти.
Постарах се по най-добрия начин да обясня най-популярните команди на WebDriver, които използваме рутинно в ежедневната си работа. Тези команди ще ви позволят да работите лесно със Selenium.
Надявам се да ви е било интересно и знаещо.
Вие сте тестер за автоматизация, който е изпробвал някоя от горните команди? Или сме пропуснали някакви команди, които използвате в горния списък?
Следващ урок # 18 : В предстоящия урок ще обсъдим за Уеб таблици, рамки и динамични елементи които са съществена част от всеки уеб проект. Ние също така ще покрием обработка на изключения важната тема в повече подробности в един от предстоящите уроци за селен.
Препоръчително четене
- Урок за краставици селен: Интеграция на краставица Java Selenium WebDriver
- Въведение в Selenium WebDriver - Урок № 8 за селен
- Как да стартирам Selenium WebDriver в различни популярни браузъри
- Внедряване на нашия първи скрипт за WebDriver - Урок № 10 за Selenium WebDriver
- Често задавани въпроси за селен
- Как да боравим със сигнали / изскачащи прозорци в Selenium WebDriver - Урок за селен # 16
- Урок за GeckoDriver селен: Как да използвам GeckoDriver в проекти за селен
- Неявно и явно чакане в Selenium WebDriver (Видове чакане на селен)