为了账号安全,请及时绑定邮箱和手机立即绑定

Selenium 如何通过 XPath 访问 WebElement?

Selenium 如何通过 XPath 访问 WebElement?

HUX布斯 2022-06-23 20:18:14
我需要访问本网站上搜索结果的链接(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."如何访问所有结果链接?
查看完整描述

3 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

xpath应该是,在属性"//div[@class='inner-results firma']"两边加上引号。class您还应该使用findElements来获得多个结果

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

附带说明一下,Java 中的变量应该以小写字母开头,MyWebDriver->myWebDriver


查看完整回答
反对 回复 2022-06-23
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

您需要将类名放在单引号中,请使用以下命令获取链接: 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) 方法中的索引。


查看完整回答
反对 回复 2022-06-23
?
aluckdog

TA贡献1847条经验 获得超7个赞

请在下面的代码片段中为您提供链接存储在网络列表中:


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

        }

    }

}

输出:


//img1.sycdn.imooc.com//62b45a380001d0c807570783.jpg

查看完整回答
反对 回复 2022-06-23
  • 3 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信