2
votes

Comment accéder à WebElement by XPath by Selenium?

J'ai besoin d'accéder aux liens vers les résultats de la recherche sur ce site Web ( https://www.pibr.org.pl/pl/search/auditor?biegli=1&firmy=1&name=&post_code=&city=Warszawa ) et placez-les dans WebElement , mais je ne peux pas les localiser par classe ou quoi que ce soit. Lors de l'utilisation de xpath :

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

J'obtiens cette erreur:

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

Comment puis-je accéder à tous les liens de résultats?


1 commentaires

// div [@ class = 'inner-results firma'] est le xpath


3 Réponses :


4
votes

Le xpath doit être "// div [@ class = 'inner-results firma']" , avec des guillemets autour de la classe code > attribut. Vous devez également utiliser findElements pour obtenir plus d'un résultat

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

En remarque, les variables en Java doivent commencer par des minuscules, MyWebDriver code > -> myWebDriver


0 commentaires

2
votes

Vous devez mettre le nom de la classe entre guillemets simples, veuillez utiliser la commande ci-dessous pour obtenir les liens: MyWebDriver.findElement (By.xpath ("// div [@ class = 'inner-results firma']")). click ();

Bien que cela ne clique que sur le premier élément de la classe, si vous voulez obtenir tous les liens puis cliquez sur le premier lien, vous pouvez utiliser: MyWebDriver.findElements (By.xpath ("// div [@ class = 'inner-results firma'] ")). get (0) .click (); et en utilisant ce xpath, vous pouvez cliquer sur n'importe quel lien mentionné sur la page en envoyant l'index dans le get (index) méthode.


0 commentaires

0
votes

Veuillez ci-dessous l'extrait de code qui vous donnera les liens stockés dans weblist:

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"));
        }
    }
}

entrez la description de l'image ici


0 commentaires