首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用selenium获取img标记的alt属性值

使用selenium获取img标记的alt属性值
EN

Stack Overflow用户
提问于 2021-07-15 19:28:46
回答 2查看 977关注 0票数 1

我对selenium非常陌生,在从img标记中提取alt值时遇到了一些困难。我的html代码:

代码语言:javascript
运行
复制
<span class="logo">
<img src="url..........." alt="my logo">
</span>

python代码:driver.find_element_by_class_name("logo").find_element_by_xpath("//img").get_attribute('alt'))

我也试过:

代码语言:javascript
运行
复制
driver.find_element_by_class_name("logo").get_attribute('alt'))

代码语言:javascript
运行
复制
driver.find_element_by_xpath("//span[@class='logo']//img").get_attribute('alt'))

代码语言:javascript
运行
复制
span = driver.find_element_by_class_name("logo")
span.find_element_by_xpath("//img").get_attribute('alt')

我可以打印对象,但是当我添加getAttribute()时,所有对象都返回一个空字符串。我是不是遗漏了什么?我试图在find_element_by.()方法中添加alt = True,但它显示了意外的参数!有人能解释一下这里发生了什么吗。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-15 19:49:22

可能您必须等到元素完全加载后才能获得它的属性。

另外,我看不到左侧的任何变量在代码中接收提取的属性值。

试试这个:

代码语言:javascript
运行
复制
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 20)

alt_val = wait.until(EC.visibility_of_element_located((By.XPATH, "//span[@class='logo']//img"))).get_attribute('alt'))

print(alt_val)

UPD

正如我从您的更新中了解到的,您正试图通过单击“零售商”按钮从对话框中的零售商标识中提取alt

如果是这样,代码如下:

代码语言:javascript
运行
复制
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span.retlogo img")))
images = driver.find_elements_by_css_selector("span.retlogo img")
for img in images:
    print(img.get_attribute('alt'))
票数 1
EN

Stack Overflow用户

发布于 2022-10-03 03:37:22

提取文本的正确方法如下

代码语言:javascript
运行
复制
driver.find_element("class name", "logo").find_element("tag name", "img").get_attribute("alt")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68399799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档