selenium根据class属性、tag名选择元素

根据class属性选择元素

元素也有类型, class 属性就用来标志着元素 类型

若网页html内容如下:

复制代码
    <body>
        
        <div class="plant"><span>土豆</span></div>
        <div class="plant"><span>洋葱</span></div>
        <div class="plant"><span>白菜</span></div>

        <div class="animal"><span>狮子</span></div>
        <div class="animal"><span>老虎</span></div>
        <div class="animal"><span>山羊</span></div>

    </body>
复制代码

选择所有动物可以用find_elements,如下所示

wd.find_elements(By.CLASS_NAME, 'animal')  # 注意element后面多了个s

find_elements 返回的是找到的符合条件的 所有 元素 (这里有3个元素), 放在一个 列表 中返回。若没有找到元素则返回一个空列表

若使用wd.find_element (注意少了一个s) 方法, 就只会返回 第一个 元素,若没有找到则抛出异常NoSuchElementException 。

 

元素也可以有多个 class类型 ,多个class类型的值之间用 空格 隔开,比如

<span class="chinese student">张三</span>

注意,这里 span元素 有两个class属性,分别 是 chinese 和 student, 而不是一个 名为chinese student 的属性。

指定任意一个class 属性值,都可以选择到这个元素,如下

element = wd.find_elements(By.CLASS_NAME,'chinese')

或者

element = wd.find_elements(By.CLASS_NAME,'student')

 

根据tag名选择元素

HTML 通过 tag 来定义不同页面的元素。例如,<input>一般用来定义输入框,<a>标签 用来定义超链接等

通过指定 参数为By.TAG_NAME ,通过元素的标签名来定位元素。选择所有的tag名为 div的元素如下:

复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By

wd = webdriver.Chrome()

wd.get('https://cdn2.byhy.net/files/selenium/sample1.html')

# 根据 tag name 选择元素,返回的是 一个列表
# 里面 都是 tag 名为 div 的元素对应的 WebElement对象
elements = wd.find_elements(By.TAG_NAME, 'div')

# 取出列表中的每个 WebElement对象,打印出其text属性的值
# text属性就是该 WebElement对象对应的元素在网页中的文本内容
for element in elements:
    print(element.text)
复制代码

 

通过WebElement对象选择元素

不仅 WebDriver对象有 选择元素 的方法, WebElement对象 也有选择元素的方法。

WebDriver 对象 选择元素的范围是 整个 web页面, 

而WebElement 对象 选择元素的范围是 该元素的内部

复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By

wd = webdriver.Chrome()

wd.get('https://cdn2.byhy.net/files/selenium/sample1.html')

element = wd.find_element(By.ID,'container')

# 限制 选择元素的范围是 id 为 container 元素的内部。
spans = element.find_elements(By.TAG_NAME, 'span')
for span in spans:
    print(span.text)
复制代码

 

参考学习:

白月黑羽:https://www.byhy.net/tut/auto/selenium/03/

虫师:Selenium3自动化测试实战

posted @   天才九少  阅读(754)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示