Python Selenium中如何实现WebElement对象与int整数的比较
解决方案
错误原因
- 你要取的数值存储在
<strong>标签的文本内容中,这类普通文本标签没有value属性,调用get_attribute('value')无法拿到正确的数值,你之前打印的valor.text才是存储数值的正确字段 - 从元素文本中取出的内容默认是字符串类型,无法直接和整数100做数值比较,需要先转换为数值类型
修复后代码
from selenium.common.exceptions import NoSuchElementException kakera = driver.find_elements_by_class_name('grid-1nZz7S') for elementos in kakera: try: valor = elementos.find_element_by_tag_name('strong') # 去除文本首尾空格后转换为整数 card_value = int(valor.text.strip()) print(card_value) if card_value >= 100: print("It's over 100") # 此处补充你需要执行的特定操作逻辑 except (ValueError, NoSuchElementException): # 跳过无对应strong标签、文本无法转换为整数的异常卡片 continue
可选优化(Selenium 4.0+适配)
如果你使用的是Selenium 4.0及以上版本,原有的find_elements_by_*系列方法已被官方弃用,可替换为标准的By定位写法:
from selenium.webdriver.common.by import By from selenium.common.exceptions import NoSuchElementException kakera = driver.find_elements(By.CLASS_NAME, 'grid-1nZz7S') for elementos in kakera: try: valor = elementos.find_element(By.TAG_NAME, 'strong') card_value = int(valor.text.strip()) print(card_value) if card_value >= 100: print("It's over 100") except (ValueError, NoSuchElementException): continue
内容的提问来源于stack exchange,提问作者xSharky
相关产品推荐
相关产品推荐

