首页 > 其他分享 >selenium根据class属性、tag名选择元素

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

时间:2023-06-27 09:01:33浏览次数:40  
标签:wd 元素 selenium find tag element class elements

根据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)

 

标签:wd,元素,selenium,find,tag,element,class,elements
From: https://www.cnblogs.com/jiushao-ing/p/17507712.html

相关文章

  • 强化学习从基础到进阶-常见问题和面试必知必答[6]:演员-评论员算法(advantage actor-cri
    强化学习从基础到进阶-常见问题和面试必知必答[6]:演员-评论员算法(advantageactor-critic,A2C),异步A2C、与生成对抗网络的联系等详解1.核心词汇优势演员-评论员(advantageactor-critic,A2C)算法:一种改进的演员-评论员(actor-critic)算法。异步优势演员-评论员(asynchronousadvanta......
  • 强化学习从基础到进阶-常见问题和面试必知必答[6]:演员-评论员算法(advantage actor-cri
    强化学习从基础到进阶-常见问题和面试必知必答[6]:演员-评论员算法(advantageactor-critic,A2C),异步A2C、与生成对抗网络的联系等详解1.核心词汇优势演员-评论员(advantageactor-critic,A2C)算法:一种改进的演员-评论员(actor-critic)算法。异步优势演员-评论员(asynchronousadvant......
  • 【Node】node 报错:tagOffsetsMap[tag] ??= [];...SyntaxError: Unexpected token ,‘??=
    安装的node版本不支持空值赋值运算符(??=)更换合适的node版本就行更多支持请在node.green上查看各种语法支持的版本参考文章NodeJS中的空合并赋值运算符(??=)......
  • 基于Java+selenium+Chrome,实现截取html页面内容并保存为图片
    1、需求实现Java程序发送邮件,并将输入的多个页面转为pdf类型附件一同发送出去。而页面如何转为pdf呢?其中的一个方案就是先将html页面转为图片,再将图片合并为pdf。此文记录的是html=>png过程。2、开发主要依赖<!--html2image--><dependency><groupId>org.seleniumhq.se......
  • Selenium基础:特殊Dom结构操作 07
    特殊Dom结构是指对元素不能直接操作,需要进行特殊定位切换到它所在的Dom结构,然后才能对其元素进行操作1、windows弹窗--alertconfirmprompt使用driver.switch_to.alert方法alert类操作方法:accept():确定dismiss():取消text():获取弹出框内的内容send_keys(keysToSend):输入......
  • liunx服务器使用selenium
    前言最近在本地windows系统(下面简称本地)用selenium写了一个自动化爬虫,放到我liunx服务器(下面简称服务器)上面运行报错,记录处理流程一、服务器下载google-chrome、chromedriver一开始以为和本地一样,下好chrome浏览器和驱动就可以直接运行了(太天真了~)1、下载chromewgethttps://dl.goo......
  • Microsoft PostScript和PCL6 Class打印机驱动是Windows操作系统提供的标准打印机驱动
    MicrosoftPostScript和PCL6Class打印机驱动是Windows操作系统提供的标准打印机驱动程序,用于支持PostScript和PCL6语言的打印机设备。这些类打印机驱动程序是为了方便用户在Windows操作系统上使用广泛的打印机设备而开发的。它们可以与各种厂商的打印机兼容,并为用户提供基本的打......
  • 下载中间件实战-Scrapy与Selenium结合
    下载中间件实战-Scrapy与Selenium结合有的页面反爬技术比较高端,一时破解不了,这时我们就是可以考虑使用selenium来降低爬取的难度。问题来了,如何将Scrapy与Selenium结合使用呢?思考的思路: 只是用Selenium来帮助下载数据。因此可以考虑通过下载中间件来处理这块内容。Spider文......
  • Selenium基础:下拉框操作 06
    *使用select方法方法一:fromselenium.webdriver.support.uiimportSelect方法二:fromselenium.webdriver.support.selectimportSelect选择项的选择,有3种方法:select_by_index(index):通过索引选择select_by_value(value):通过value值选择select_by_visible_text(text):通过......
  • Selenium基础:鼠标操作 05
    *需要导入ActionChains类fromselenium.webdriver.common.action_chainsimportActionChains1、鼠标右击context_click(element)方法fromseleniumimportwebdriver#导入actionchainsfromselenium.webdriver.common.action_chainsimportActionChainsimporttime......