文章目录
快捷方法
selenium没有exist_xxx相关的方法,无法直接判断元素存在。但是锁定元素时使用的browser.find_elements(By.CSS_SELECTOR, "css元素")
会返回一个列表list
,如果不存在这个元素就会返回一个空列表。因此我们曲线救国,比如:
py
if len(browser.find_elements(By.CSS_SELECTOR, "a.paging_next")) == 0:
# 元素不存在的逻辑
pass
else:
# 元素存在的逻辑
pass
完整示例程序
比如使用如下代码获取一个网页:
py
from selenium import webdriver
from selenium.webdriver.common.by import By
option = webdriver.ChromeOptions()
option.add_argument('--disable-gpu')
option.add_argument('lang=zh_CN.UTF-8')
prefs = {
"profile.managed_default_content_settings.images": 2, # 禁止加载图片
}
option.add_experimental_option("prefs", prefs)
browser = webdriver.Chrome(options=option)
browser.get("https://www.baidu.com")
得到百度的页面
此时如果随便索引一个,结果为0
:
py
print(len(browser.find_elements(By.CSS_SELECTOR, "a.paging_next")))
而如果索引下面那一部分,得到结果18
:
py
print(len(browser.find_elements(By.CSS_SELECTOR, "div#s-top-left a")))
索引网页内存在的内容,得到结果['新闻', 'hao123', '地图', '贴吧', '视频', '图片', '网盘', '更多', '', '', '', '', '', '', '', '', '', '']
py
print([_v.text for _v in browser.find_elements(By.CSS_SELECTOR, "div#s-top-left a")])