Python中find_elements以及presence_of_element_located的用法

我们在使用爬虫模拟浏览器时候,可以用find_elements以及presence_of_element_located提取相关元素并且进行一些操作

样例1 find_elements

此例子可以实现,B站中,循环点击列表中的每一个按钮

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://www.bilibili.com/video/av24004208/")
driver.implicitly_wait(20)  # 隐式设置20秒,应该可以让全部的元素加载到dom中
num = len(driver.find_elements(by=By.XPATH, value='//*[@class="list-box"]/li'))
# print(num)

for i in range(num):
    try:
        path = '//*[@class="list-box"]/li['+str(i+1)+']'
        driver.find_element(by=By.XPATH, value=path).click()
        time.sleep(2)
    except Exception as e:
        print(e)
    finally:
        pass

样例2 presence_of_element_located

import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By


driver = webdriver.Chrome()
driver.get("https://www.bilibili.com/video/av24004208/")

try:
    element = WebDriverWait(driver, 10, 0.2).until(
        EC.presence_of_element_located((By.XPATH, '//*[@class="list-box"]/li/a[@title="p3"]'))
    )
    print(element)
    element.click()
    time.sleep(1)
except Exception as e:
    print(e)
finally:
    pass

毁灭吧赶紧的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值