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

获取 div 类中的元素列表

获取 div 类中的元素列表

蛊毒传说 2023-04-26 14:43:53
我有多个 div 类。我需要获取文本值的内部 div 元素。<div data-tab-content-id="2" class="panel active">  <div class="_1jkaeae">      <div class="abc-table">          <div class="aaa nhc">              <div class="aaa-name">Hello</div>          </div>          <div class="aaa mhjss">              <div class="aaa-name">How</div>          </div>      </div>      <div class="aaa qwqwq">          <div class="aaa-name">are</div>      </div>  </div>  <div class="aaa kkkk">      <div class="aaa-name">You</div>  </div></div><div class="aaa cccc">  <div class="aaa-name">doing</div></div></div><div class="aaa cvdsdws">  <div class="aaa-name">Welcome</div></div></div><div class="aaa klqwq">  <div class="aaa-name">to the web</div></div></div></div>从上面的 html 中,我正在寻找的输出是获取所有文本值(你好,你好,你,做,欢迎,到 web)。如果有人可以帮助我,我将不胜感激。
查看完整描述

5 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

How,are,you,doing,welcome,to the web它们都共享相同的类名,您可以继续使用class namecss selectorxpath

你可以使用这个 css 选择器:

.aaa-name

代码 :

driver.findElement(By.cssSelector(".aaa-name")).getText();

Xpath 将是:

//div[@class='aaa-name']

代码 :

driver.findElement(By.xpath("//div[@class='aaa-name']")).getText();

希望这可以帮助。


查看完整回答
反对 回复 2023-04-26
?
ibeautiful

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

让我们分步解决问题:


获取您需要文本的所有 div 元素的列表


List<WebElement> ele_list = driver.findElements(By.xpath("//div[@class='aaa-name']"))

遍历上面的列表并从上面的列表中获取每个元素的文本并打印:


List<String> text_element = new ArrayList<String>()

for(WebElement ele : ele_list){

    text_element.add(ele.getText());

}

希望能帮助到你 :)


查看完整回答
反对 回复 2023-04-26
?
烙印99

TA贡献1829条经验 获得超13个赞

您要查找的文本属于同一类名称。因此,您可以使用该方法查找文本className
你可以像这样找到它:

driver.findElement(By.className("aaa-name")).getText();


查看完整回答
反对 回复 2023-04-26
?
富国沪深

TA贡献1790条经验 获得超9个赞

由于它们都共享相同的类名,因此您需要使用类名 ie 获取所有元素aaa-name,然后循环遍历元素以获得所需的输出。例如:


List<WebElement> elements = driver.findElements(By.className("aaa-name"));

for(WebElement element: elements){

    //perform your logic here...

    System.out.println(element.getText());

}


查看完整回答
反对 回复 2023-04-26
?
智慧大石

TA贡献1946条经验 获得超3个赞

处理动态元素 InduceWebDriverWait并visibilityOfAllElementsLocatedBy使用以下 css 选择器。


WebDriverWait wait = new WebDriverWait(driver, 30);

List<WebElement> elements = wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("div.aaa-name")));

        for(int i=0;i<elements.size();i++)

        {

            System.out.println(elements.get(i).getText());


        }

控制台输出:


Hello

How

are

You

doing

Welcome

to the web


查看完整回答
反对 回复 2023-04-26
  • 5 回答
  • 0 关注
  • 170 浏览

添加回答

举报

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