如何显示跨度类字段

Posted

技术标签:

【中文标题】如何显示跨度类字段【英文标题】:how to display span class field 【发布时间】:2020-08-02 02:29:21 【问题描述】:

我正在尝试在 chrome 浏览器中将两个“文本文本传递”从 html 显示到我的打印控制台,显然,它不起作用,请问有什么建议吗?

我的浏览器html代码

  <a href="/abc/123" class="active">
    <div class="sidebar-text"> 
     <span class="text text-pass"> </span> </a>
  <a href="/abc/1234" class="active">
        <div class="sidebar-text">
         <span class="text text-pass"> </span> </a>

我的代码

    String 123= driver.findElement(By.xpath("//*[@id="js-app"]/div/div/div[2]/div[1]/div/div/ul/li[5]/a")).getText();
    System.out.println(123);

String 1234= driver.findElement(By.xpath("//*[@id="js-app"]/div/div/div[2]/div[1]/div/div/ul/li[5]/a")).getText();
    System.out.println(1234);

【问题讨论】:

【参考方案1】:

您可以使用.findElements 获取多个具有相同模式的元素,它会返回一个列表集合。

更新

参考您的评论,您需要将字符串重新放入列表并使用Collection.contains()方法检查:

List<String> results = new ArrayList<>();
List<WebElement> elements = driver.findElements(By.xpath("//div[@class='sidebar-text']//span"));
for(WebElement element: elements) 
    String attr = element.getAttribute("class");
    results.add(attr);
    System.out.println(attr);


if(results.contains("text text-fail")) 
    System.out.println("this is list contains 'text text-fail'");

【讨论】:

谢谢它的工作,对不起,我在这里完全是菜鸟,我如何从列表显示到单个字符串?我从列表中得到了 2 个元素,并希望将它们放入一个字符串中并一个一个地进行验证 有时 可能会变成 ,所以我的议程是检查列表是否没有返回任何“文本文本失败” @user1579414 您需要再次将字符串放入List,查看更新后的答案。【参考方案2】:

试试这个代码:

String pass = driver.findElement(By.xpath("//*[@class='sidebar-text']/span")).getAttribute("class");
System.out.println(pass);

【讨论】:

感谢 saragada,但您提供的代码不起作用,控制台上没有打印任何内容。另外我如何区分 ahref 标签?因为我有两个这些 ref 标签。让我再次编辑我的帖子 对不起,我把它粘贴错了,它可以工作,但是,我如何区分 ahref 标签?我需要打印两个 spanclass 文本以验证我的 ahref 标记是否包含 span 类标记的通行证。

以上是关于如何显示跨度类字段的主要内容,如果未能解决你的问题,请参考以下文章

如何使用类获取跨度内的文本。 (for循环内部)

如何刮掉另一个跨度类中的一个跨度?

如何在按钮单击并插入跨度标记时显示 jquery datepicker

如何从隐藏的跨度类 HTML 中抓取链接?

如何使用动画移动跨度?

Jquery 循环 - 如何在不破坏缩略图寻呼机的情况下将图像包装在跨度标签中?