Selenium Python Get Img SRC返回实际图像数据

问题描述 投票:1回答:1

我正在使用Python中的Selenium并使用Firefox Web驱动程序。

我正在尝试获取图像的SRC。当我第一次请求SRC时,我得到的是实际的图像数据,而不是SRC

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ ...

如果第二次运行完全相同的代码,我将获得SRC

example.jpg

这是我的代码

fireFoxOptions = webdriver.FirefoxOptions()
fireFoxOptions.set_headless()
browser = webdriver.Firefox(firefox_options=fireFoxOptions)

element = browser.find_element(By.ID , "idOfImageHere" )
imageUrl = element.get_attribute("src")
print("image src: " + imageUrl)

不确定在第一次运行代码时为什么返回图像数据,然后在第二次运行时返回src。几乎似乎一旦缓存了图像,它就可以获取src或类似的东西。

关于如何防止仅通过src链接返回图像数据的任何建议?

谢谢

python selenium xpath css-selectors webdriverwait
1个回答
1
投票

Amazon网站元素是启用JavaScript的元素,因此要提取任何元素的src属性,您必须为visibility_of_element_located()引入WebDriverWait,并且可以使用以下任何一个Locator Strategies

  • 使用ID

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.ID, "idOfImageHere"))).get_attribute("src"))
    
  • 使用XPATH

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='idOfImageHere]"))).get_attribute("src"))
    
  • 使用CSS_SELECTOR

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "#idOfImageHere"))).get_attribute("src"))
    
  • Note:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
© www.soinside.com 2019 - 2024. All rights reserved.