为什么我无法使用类名属性在 Flipkart 中定位元素?

Why am I not able to locate element in Flipkart using classname attribute?

我正在使用“class 名称”属性来定位 Flip-kart 中的元素,如下所示:

WebElement element = driver.findElement(By.className("_1QZ6fC _3Lgyp8"));

我得到的错误是:

org.openqa.selenium.NoSuchElementException:无法定位元素:._1QZ6fC\ _3Lgyp8

HTML元素代码如下:

<span class="_1QZ6fC _3Lgyp8">Electronics<svg width="4.7" height="8" viewBox="0 0 16 27" xmlns="http://www.w3.org/2000/svg" class="_3ynUUz"><path d="M16 23.207L6.11 13.161 16 3.093 12.955 0 0 13.161l12.955 13.161z" fill="#fff" class="_3Der3h"></path></svg></span>

目标网络元素和网站 - URL 中 header 的“电子产品”类别 https://www.flipkart.com/

运行 上述行产生以下错误: org.openqa.selenium.InvalidSelectorException:复合 class 名称不允许

关于这一点,您可以从之前的查询中找到更多详细信息

除了在指定页面中使用 classname 选项外,还会导致选择多个元素,我们可以看到至少有 7 个项目具有相同的 classname。

除此之外,您可以使用 xpath 来定位元素,如下所示:

driver.findElement(By.xpath("//span[包含(.,'Electronics')]"));