Текст посилання та частковий текст посилання в Selenium

⚡ Розумний підсумок

Текст посилання та частковий текст посилання в Selenium знаходить гіперпосилання на веб-сторінці за їхнім текстом прив'язки. Метод By.linkText() знаходить точний текст, тоді як By.partialLinkText() знаходить його частину, і обидва локатори враховують регістр і повертають перший збіг.

  • 🔗 Визначення тексту посилання: Знаходить гіперпосилання на сторінці за їхнім видимим текстом прив’язки.
  • 🎯 За.посиланняТекст(): Збігається з точним текстом посилання та повертає перший збіг.
  • 🔎 За допомогою.partialLinkText(): Збігається з частиною тексту посилання, також повертаючи перший збіг.
  • 🔠 З урахуванням регістру: Обидва локатори вважають використання великих літер значним, тому «egis» та «EGIS» відрізняються.
  • 🧱 Кілька/Блокові посилання: Для дублікатів використовуйте xpath або cssSelector; обидва методи працюють як всередині, так і зовні тегів блоків.

Текст посилання та частковий текст посилання в Selenium

У чому текст посилання Selenium?

A Текст посилання в Selenium використовується для ідентифікації гіперпосилань на веб-сторінці. Визначається за допомогою анкерного тега. Для створення гіперпосилань на веб-сторінці ми можемо використовувати тег прив’язки, за яким слідує текст посилання.

Посилання, що відповідають критерію

Посилання можна отримати за допомогою точного або часткового збігу тексту посилання. У наведених нижче прикладах наведено сценарії, коли може існувати кілька збігів, і пояснюється, як WebDriver справлятиметься з ними.

У цьому посібнику ми дізнаємося про доступні методи пошуку та доступу до посилань за допомогою Webdriver. Крім того, ми обговоримо деякі типові проблеми, з якими стикаємося під час доступу до Links, і далі обговоримо, як їх вирішити.

Повний текст посилання в Selenium – By.linkText()

Доступ до посилань за допомогою їх точного тексту здійснюється за допомогою методу By.linkText().. Однак якщо є два посилання з однаковим текстом посилання, цей метод матиме доступ лише до першого. Розгляньте наведений нижче HTML-код

Текст посилання Selenium–By.LinkText()

Текст посилання Selenium–By.LinkText()

Коли ви спробуєте запустити код WebDriver нижче, ви отримаєте доступ за першим посиланням «клацніть тут».

Текст посилання Selenium–By.LinkText()

Code:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class MyClass {

    public static void main(String[] args) {
        String baseUrl = "https://demo.guru99.com/test/link.html";
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        driver.findElement(By.linkText("click here")).click();
        System.out.println("title of page is: " + driver.getTitle());
        driver.quit();
    }

}

Ось як це працює -

Текст посилання Selenium–By.LinkText()

В результаті вас автоматично перенаправить до Google.

Текст посилання Selenium–By.LinkText()

Повний частковий текст посилання в Selenium – By.partialLinkText()

Доступ до посилань за допомогою частини тексту посилань здійснюється за допомогою By.partialLinkText() метод. Якщо ви вкажете частковий текст посилання, який містить кілька збігів, буде доступний лише перший збіг. Розгляньте наведений нижче HTML-код.

Частковий текст посилання Selenium – By.partialLinkText()

 Частковий текст посилання Selenium – By.partialLinkText()

Коли ви виконаєш код WebDriver нижче, тебе все одно буде перенаправлено на Google.

 Частковий текст посилання Selenium – By.partialLinkText()

Code:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class P1 {

    public static void main(String[] args) {
        String baseUrl = "https://demo.guru99.com/test/accessing-link.html";
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        driver.findElement(By.partialLinkText("here")).click();
        System.out.println("Title of page is: " + driver.getTitle());
        driver.quit();
    }
}

Частковий текст посилання Selenium – By.partialLinkText()

Як отримати кілька посилань з однаковим текстом посилання

Отже, як обійти вищевказану проблему? У випадках, коли існує кілька посилань з однаковим текстом посилання, і ми хочемо отримати доступ до посилань, відмінних від першого, як це зробити?

У таких випадках, як правило, використовуються різні локатори, а саме… By.xpath(), By.cssSelector() або By.tagName().

Найчастіше використовується By.xpath(). Він найнадійніший, але виглядає складним і нерозбірливим.

Чутливість до регістру тексту посилання

Чутливість до регістру тексту посилання

Параметри для By.linkText() та By.partialLinkText() обидва чутливі до регістру, тобто використання великих літер має значення. Наприклад, в Mercury На домашній сторінці Tours є два посилання, які містять текст «egis» – одне це посилання «ЗАРЕЄСТРУВАТИСЯ» у верхньому меню, а інше це посилання «Зареєструватися тут» у нижній правій частині сторінки.

Чутливість до регістру тексту посилання

Хоча обидва посилання містять послідовність символів «egis», метод «By.partialLinkText()» звертатиметься до цих двох посилань окремо залежно від написання символів з великих літер. Дивіться приклад коду нижче.

Чутливість до регістру тексту посилання

Code

public static void main(String[] args) {
        String baseUrl = "https://demo.guru99.com/test/newtours/";
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        String theLinkText = driver.findElement(By
                .partialLinkText("egis"))
                .getText();
        System.out.println(theLinkText);
        theLinkText = driver.findElement(By
                .partialLinkText("EGIS"))
                .getText();
        System.out.println(theLinkText);

        driver.quit();

    }

Посилання поза та всередині блоку

Останній стандарт HTML5 дозволяє розміщувати теги всередині та поза тегами рівня блоку, наприклад , або . Методи “By.linkText()” і “By.partialLinkText()” можуть отримати доступ до посилання, розташованого поза та всередині цих елементів рівня блоку. Розгляньте наведений нижче HTML-код.

Посилання поза та всередині блоку

Посилання поза та всередині блоку

Наведений нижче код WebDriver отримує доступ до обох цих посилань за допомогою методу By.partialLinkText().

Посилання поза та всередині блоку

Code:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class MyClass {

    public static void main(String[] args) {
        String baseUrl = "https://demo.guru99.com/test/block.html";
        System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        driver.get(baseUrl);
        driver.findElement(By.partialLinkText("Inside")).click();
        System.out.println(driver.getTitle());
        driver.navigate().back();
        driver.findElement(By.partialLinkText("Outside")).click();
        System.out.println(driver.getTitle());
        driver.quit();
    }
}

Вихідні дані вище підтверджують, що обидва посилання були успішно перейшли, оскільки їх відповідні заголовки сторінок були отримані правильно.

Поширені запитання

By.linkText() знаходить повний, точний видимий текст посилання, тоді як By.partialLinkText() знаходить будь-яке посилання, що містить заданий підрядок. Обидва повертають лише перше відповідне посилання, якщо кілька посилань відповідають критеріям.

Так. Як By.linkText(), так і By.partialLinkText() чутливі до регістру, тому використання великих літер має значення. Тексти «egis» та «EGIS» розглядаються як різні значення та можуть відповідати різним посиланням на одній сторінці.

Оскільки локатори тексту посилань повертають лише перший збіг, використовуйте By.xpath() або By.cssSelector() для пошуку певного посилання, або використовуйте findElements() з By.tagName(“a”), щоб зібрати всі посилання та вибрати потрібне.

Інструменти штучного інтелекту аналізують DOM та ранжують атрибути за стабільністю, щоб запропонувати надійні селектори XPath або CSS. Вони надають перевагу унікальним, менш крихким ідентифікаторам, зменшуючи кількість збоїв, спричинених незначними змінами інтерфейсу користувача під час виконання тесту.

Так. Тестові системи з функцією самовідновлення використовують штучний інтелект для виявлення збоїв локатора, а потім оцінюють сусідні елементи за схожістю та автоматично перемикаються на найближчий збіг.ping тести проводяться з меншим ручним обслуговуванням.

Підсумуйте цей пост за допомогою: