我对selenium非常陌生,在从img标记中提取alt值时遇到了一些困难。我的html代码:
<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'))
我也试过:
driver.find_element_by_class_name("logo").get_attribute('alt'))
和
driver.find_element_by_xpath("//span[@class='logo']//img").get_attribute('alt'))
和
span = driver.find_element_by_class_name("logo")
span.find_element_by_xpath("//img").get_attribute('alt')
我可以打印对象,但是当我添加getAttribute()时,所有对象都返回一个空字符串。我是不是遗漏了什么?我试图在find_element_by.()方法中添加alt = True,但它显示了意外的参数!有人能解释一下这里发生了什么吗。
提前谢谢。
发布于 2021-07-15 19:49:22
可能您必须等到元素完全加载后才能获得它的属性。
另外,我看不到左侧的任何变量在代码中接收提取的属性值。
试试这个:
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
。
如果是这样,代码如下:
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'))
发布于 2022-10-03 03:37:22
提取文本的正确方法如下
driver.find_element("class name", "logo").find_element("tag name", "img").get_attribute("alt")
https://stackoverflow.com/questions/68399799
复制相似问题