两种方式判断类的存在→className getAttribute

本文介绍了两种使用JavaScript通过className获取特定类名元素的方法:一种是直接利用className属性进行筛选;另一种则是通过getAttribute方法来获取并匹配类名。这两种方法均可帮助开发者有效定位到带有指定类名的元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过className获取

var p = document.getElementsByTagName('p');

for(var i = 0;i <p.length;i++){

  if(p[i].className=='test'){
   console.log(p[i].innerHTML)
     }
} //遍历出页面的p元素,并通过className来判断是否有test这个类,最后把有这个类的p元素通过innerHTML进行内容的打印

通过getAttribute

var p = document.getElementsByTagName('p');

for(var i = 0;i <p.length;i++){

  if(p[i].getAttribute("class")=='test'){
        console.log(p[i].innerHTML);
    }
} //遍历出页面的p元素,并通过getAttribute来判断是否有test这个类,最后把有这个类的p元素通过innerHTML进行内容的打印

 

转载于:https://www.cnblogs.com/Model-Zachary/p/6122778.html

### 使用 Appium 获取元素下二级的数量 为了获取特定元素下的二级子元素(即孙子节点)中的 `class` 数量,在 Appium 中可以采用多种方法实现这一目标。一种常见的方式是利用 XPath 表达式来精确定位这些元素。 #### 方法一:使用 XPath 定位并计数 通过构建合适的 XPath 查询语句可以直接找到指定父级元素内的所有符合条件的孙辈元素,并计算其总数: ```java // 假设 parentElement 是已经定位到的目标父元素 List<WebElement> secondLevelElements = driver.findElements(By.xpath("./*//*")); // 寻找当前元素下的所有子孙元素 int countOfClassNames = (int) secondLevelElements.stream().filter(element -> "expected_class_name".equals(element.getAttribute("className"))).count(); System.out.println("Number of elements with the specified class name under the grandchild level is: " + countOfClassNames); ``` 这段代码首先定义了一个列表用于存储所有的二级子元素,接着遍历这个集合过滤出具有预期 `class` 名称的元素,最后统计这元素的数量[^1]。 #### 方法二:分步查找 另一种方式则是先查找出直接子元素,然后再针对每一个子元素去寻找它们自己的子元素,从而达到访问二级子元素的目的: ```python from appium import webdriver as appium_webdriver from selenium.webdriver.common.by import By parent_element = driver.find_element(by=By.XPATH, value="//some/xpath/expression") # 替换为实际路径表达式的字符串 children_elements = parent_element.find_elements(by=By.XPATH, value="./*") second_level_classes_count = sum( len(child.find_elements(by=By.CLASS_NAME, value="your.class.name")) for child in children_elements ) print(f'Total number of "{your.class.name}" classes at the second-level depth:', second_level_classes_count) ``` 这里展示了 Python 版本的例子,其中 `./*` 部分表示选取直接位于当前节点之下的任何型的单层子节点;而 `"your.class.name"` 应替换为目标 CSS 名。 这两种方案都可以有效地解决问题,开发者可以根据具体的项目环境和个人偏好选择合适的方法实施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值