Как да проверите подсказка с помощта на Selenium WebDriver

Съдържание:

Anonim

Подсказка в селен

А Подсказка в Селенът е текст, който се появява, когато един мишката остава върху даден обект на дадена уеб страница. Обектът може да бъде връзка, изображение, бутон, текстова област и т.н. Текстът на подсказката често дава повече информация за обекта, върху който потребителят задържа курсора на мишката.

Подсказките традиционно се прилагат като атрибут „заглавие“ на елемент. Стойността на този атрибут беше показана като подсказка при нанасяне на курсора на мишката. Това е статичен текст, даващ информация за елемента без стил.

Сега има много плъгини на разположение за прилагане на „съвети за инструменти“. Разширени подсказки със стил, рендиране, изображения и връзки се внедряват с помощта на приставки JavaScript / JQuery или с помощта на CSS Tooltips.

  • За достъп или проверка на статичните подсказки, които са реализирани с помощта на HTML атрибута "title", можем просто да използваме метода getAttribute ("title") на WebElement. Върнатата стойност на този метод (който е текстът на подсказката) се сравнява с очакваната стойност за проверка.
  • За други форми на внедряване на подсказки, ще трябва да използваме „API за разширено взаимодействие с потребителя“, предоставен от уеб драйвера, за да създадем ефект на задържане на мишката и след това да извлечем подсказка за елемента.

Кратко за приложния програмен интерфейс за взаимодействие с потребители:

API за разширени потребителски взаимодействия предоставя API за потребителски действия като плъзгане и пускане, задържане, мултиизбиране, натискане и освобождаване на клавиши и други действия с помощта на клавиатура или мишка на уеб страница.

Можете да се обърнете към тази връзка за повече подробности относно API.

https://seleniumhq.github.io/selenium/docs/api/java/index.html?org/openqa/selenium/interactions/Actions.html

Тук нека да видим как да използваме няколко класа и методи, които ще са ни необходими за преместване на елемент на плъзгача с отместване.

Стъпка 1) За да използвате API, трябва да бъдат импортирани следните пакети / класове:

Стъпка 2) Създайте обект от клас "Действия" и изградете Последователността на потребителските действия. Класът действия се използва за изграждане на последователността на потребителските действия като moveToElement (), dragAndDrop () и т.н. Различни методи, свързани с потребителски действия, се предоставят от API.

Обектът драйвер се предоставя като параметър на неговия конструктор.

Стъпка 3) Създайте обект на действие, като използвате метода build () от класа "Action". Извикайте метода perform (), за да изпълните всички действия, изградени от обекта Action (конструктор тук).

Видяхме как да използваме някои от методите на потребителски действия, предоставени от API - clickAndHold (елемент), moveByOffset (10,0), release (). API предоставя много такива методи.

Вижте връзката за повече подробности.

Как да получите текст с подсказка в Selenium Webdriver

Нека видим демонстрацията на достъп и проверка на съветите на инструмента в простия сценарий

  • Сценарий 1: Подсказка се изпълнява с помощта на атрибута "title"
  • Сценарий 2: Подсказка се изпълнява с помощта на приставка jQuery.

Сценарий 1: Атрибут „заглавие“ в HTML

За този случай нека вземем примерния сайт - http://demo.guru99.com/test/social-icon.html.

Ще се опитаме да проверим подсказката на иконата "github" в горния десен ъгъл на страницата.

За да го направим, първо ще намерим елемента и ще получим атрибута „title“ и ще проверим с очаквания текст на инструмента.

Тъй като приемаме, че върхът на инструмента е в атрибута "title", ние дори не автоматизираме ефекта на мишката, а просто извличаме стойността на атрибута, използвайки метода "getAttribute ()".

Ето кода

внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.chrome.ChromeDriver;внос org.openqa.selenium. *;подсказка за публичен клас {публична статична void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/social-icon.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Драйвер за WebDriver = нов ChromeDriver ();driver.get (baseUrl);Низ очакваноTooltip = "Github";// Намерете иконата на Github в горния десен ъгъл на заглавкатаWebElement github = driver.findElement (By.xpath (".//*[@ class = 'soc-ico show-round'] / a [4]"));// получаваме стойността на атрибута "title" на иконата на githubString actualTooltip = github.getAttribute ("заглавие");// Определете стойността на подсказката според очакваниятаSystem.out.println ("Действително заглавие на подсказка на инструмента" + действителноTooltip);ако (actualTooltip.equals (очакванTooltip)) {System.out.println („Тестът е преминат“);}driver.close ();}}

Обяснение на кода

  1. Намерете WebElement, представляващ иконата "github".
  2. Вземете неговия атрибут "title", като използвате метода getAttribute ().
  3. Артикулирайте стойността спрямо очакваната стойност на подсказката.

Сценарий 2: Приставка JQuery:

Има много JQuery плъгини на разположение за внедряване на подсказките и всеки от тях има малко по-различна форма на изпълнение.

Някои приставки очакват HTML с подсказка да присъства през цялото време до елемента, за който е приложим подсказката, докато останалите създават динамичен "div" таг, който се появява в движение, докато минава над елемента.

За нашата демонстрация, нека разгледаме "jQuery Tools Tooltip" начин за изпълнение на подсказка.

Тук в URL адреса - http://demo.guru99.com/test/tooltip.html можете да видите демонстрационния файл, при който при задържане на мишката над „Изтегляне сега“ получаваме разширена подсказка с изображение, фон на допълнително описание, таблица и връзка вътре в нея, върху която може да се кликне.

Ако погледнете източника по-долу, можете да видите, че тагът div, представляващ подсказката, винаги присъства до маркера на връзката „Изтегляне сега“. Но кодът в тага на скрипта по-долу контролира кога трябва да се появи.

Нека се опитаме да проверим само текста на връзката в подсказката за нашата демонстрация тук.

Първо ще намерим WebElement, съответстващ на „Изтеглете сега“. След това, използвайки приложния програмен интерфейс (API) за взаимодействия, ние ще преминем към елемента (мишката върху курсора) След това ще намерим WebElement, който съответства на връзката в показаната подсказка и ще го проверим спрямо очаквания текст.

Ето кода

внос org.openqa.selenium.interactions.Action;внос org.openqa.selenium.interactions.Actions;внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.chrome.ChromeDriver;внос org.openqa.selenium. *;публичен клас JqueryToolTip {публична статична void main (String [] args) {String baseUrl = "http://demo.guru99.com/test/tooltip.html";System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Драйвер за WebDriver = нов ChromeDriver ();String očekujeTooltip = "Какво е новото в 3.2";driver.get (baseUrl);WebElement изтегляне = драйвер.findElement (By.xpath (".//*[@ id = 'download_now']"));Конструктор на действия = нови действия (драйвер);builder.clickAndHold (). moveToElement (изтегляне);builder.moveToElement (изтегляне) .build (). изпълнява ();WebElement toolTipElement = driver.findElement (By.xpath (".//*[@ class = 'box'] / div / a"));String actualTooltip = toolTipElement.getText ();System.out.println ("Действително заглавие на подсказка на инструмента" + действителноTooltip);ако (actualTooltip.equals (очакванTooltip)) {System.out.println („Тестът е преминат“);}driver.close ();}}

Обяснение на кода

  1. Намерете WebElement, който съответства на елемента „изтегляне сега“, който ще задържим с мишката.
  2. Използвайки API за взаимодействия, задръжте курсора на мишката върху „Изтегляне сега“.
  3. Ако приемем, че се показва подсказката, намерете WebElement, който съответства на връзката в подсказката, т.е. маркера "a".
  4. Проверете текста на подсказката на връзката, извлечен с помощта на getText (), спрямо очаквана стойност, която сме съхранили в "ожиданToolTip"

Резюме:

В този урок сте научили как да осъществите достъп до подсказки, използвайки Selenium Web драйвер.

  • Съветите за инструменти се прилагат по различни начини -
    • Основната реализация се основава на атрибута "title" на HTML. getAttribute (заглавие) получава стойността на подсказката.
    • Други внедрявания на съвети като JQuery, подсказките за CSS изискват API за взаимодействие, за да създадете ефект на мишката
  • API за разширени взаимодействия с потребители
    • moveToElement (елемент) от клас Действия се използва за задържане на мишката върху елемент.
    • Методът Build () на класа Action изгражда последователността от действия на потребителя в обект Action.
    • Класът Perform () на Action изпълнява наведнъж цялата последователност от действия на потребителя.
  • За да проверим подсказка, първо трябва да задържим курсора на мишката върху елемента, след това да намерим елемента, който съответства на подсказката на инструмента, и да получим неговия текст или други стойности за проверка спрямо очакваните стойности.