0


selenium之显示等待(等到某个元素出现后再继续执行)

本文章还请认真仔细阅读,非常简单,阅读前,你可能已经掌握,xpath

我们在爬虫的时候,总会利用time.sleep(),去等待元素的出现,但是这很容易出错,因为你不知道你的网速有多卡😂,从而导致频繁报错

我相信我的注释已经很 【言简意赅】了,你一定可以看得懂

我用了一个很简单的例子,百度一下

我喜欢直接上代码

import time

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

wd = webdriver.Chrome()
wd.get('http://www.baidu.com')# wd是webdriver对象,10是最长等待时间,0.5是每0.5秒去查询对应的元素。until后面跟的等待具体条件,EC是判断条件,检查元素是否存在于页面的 DOM 上。# 这行可以理解为 每0.5s连接到百度的首页看看,有没有出来
login_btn = WebDriverWait(wd,10,0.5).until(EC.presence_of_element_located((By.ID,"s-top-loginbtn")))# 再举个例子 比如网速慢, 【百度一下】 左边的输入框没出来,那我们就设置,如果出现就输入 查找的关键字
WebDriverWait(wd,10,0.5).until(EC.presence_of_element_located((By.XPATH,"//input[@id='kw']")))
input_ = wd.find_element_by_xpath("//input[@id='kw']")
time.sleep(0.1)
input_.send_keys("python")# 再举个例子 比如网速慢, 【百度一下】 这四个字没出来(按钮),那我们就设置,如果出现就输入 查找的关键字,然后点击
WebDriverWait(wd,10,0.5).until(EC.presence_of_element_located((By.XPATH,"//input[@id='su']")))
baiduyixia = wd.find_element_by_xpath("//input[@id='su']")
time.sleep(0.1)
baiduyixia.click()

time.sleep(2)
wd.close()

参考链接:https://blog.csdn.net/qq_44728587/article/details/122997412

致力于办公自动化的小小程序员一枚

都看到这了,关注+点赞+收藏=不迷路!!


本文转载自: https://blog.csdn.net/weixin_42636075/article/details/126474272
版权归原作者 一晌小贪欢 所有, 如有侵权,请联系我们删除。

“selenium之显示等待(等到某个元素出现后再继续执行)”的评论:

还没有评论