Хобрук: Ваш путь к мастерству в программировании

Как получить доступ к WebElement с помощью XPath с помощью Selenium?

Мне нужен доступ к ссылкам на результаты поиска на этом сайте (https://www.pibr.org.pl/pl/search/auditor?biegli=1&firmy=1&name=&post_code=&city=Warszawa) и поместить их в WebElement, но я не могу их найти по классам или чему-то еще. При использовании xpath:

MyWebDriver.findElement(By.xpath("//div[@class=inner-results firma]")).click();

Я получаю эту ошибку:

"Given xpath expression "//div[@class=inner-results firma]" is invalid: SyntaxError: The expression is not a legal expression."

Как я могу получить доступ ко всем ссылкам результатов?


  • //div[@class='inner-results firma'] - это xpath 18.02.2019

Ответы:


1

xpath должно быть "//div[@class='inner-results firma']", с кавычками вокруг атрибута class. Вы также должны использовать findElements, чтобы получить более одного результата.

MyWebDriver.findElements(By.xpath("//div[@class='inner-results firm']")).click();

В качестве примечания, переменные в Java должны начинаться с нижнего регистра, MyWebDriver -> myWebDriver

18.02.2019

2

Вам нужно поместить имя класса в одинарные кавычки, используйте следующую команду, чтобы получить ссылки: MyWebDriver.findElement(By.xpath("//div[@class='inner-results firma']")).click();

Хотя это будет щелкать только по первому элементу класса, если вы хотите получить все ссылки, а затем щелкнуть по первой ссылке, вы можете использовать: MyWebDriver.findElements(By.xpath("//div[@class='inner-results firma']")).get(0).click(); и с помощью этого xpath вы можете щелкнуть любую ссылку, упомянутую на странице, отправка индекса в методе get(index).

18.02.2019

3

Пожалуйста, ниже приведен фрагмент кода, который даст вам хранилище ссылок в веб-списке:

import java.awt.AWTException;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

public class Testing {
    public static WebDriver driver;

    @Test
    public void test() throws InterruptedException, AWTException {
        System.setProperty("webdriver.chrome.driver", "./Driver/chromedriver");
        driver = new ChromeDriver();
        driver.get("https://www.pibr.org.pl/pl/search/auditor?biegli=1&firmy=1&name=&post_code=&city=Warszawa");
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(45, TimeUnit.SECONDS);
        List<WebElement> fromDropDwon = driver.findElements(By.xpath("/html/body/div[2]/div/div[2]/div/h3/a"));
        for (WebElement element : fromDropDwon) {
            System.out.println(element.getAttribute("href"));
        }
    }
}

Вывод:

введите здесь описание изображения

18.02.2019
Новые материалы

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..