Selenium:如何检查图像的src属性?

时间:2018-07-24 15:53:38

标签: selenium automated-tests frontend

我正在尝试检查此图像的src属性的值(以蓝色突出显示):

enter image description here

这是我正在尝试的(不起作用):

visual = col_12_wrapper.find_element_by_class_name('visual')
left_text_img = visual.find_element_by_css_selector('div.col-sm-6:first-of-type')
left_img = left_text_img.find_element_by_tag_name('img')

#this line below fails
left_img[contains(@src,'../../static/images/databytes/colors/frame-0164.jpg')]

3 个答案:

答案 0 :(得分:0)

此行:

left_img[contains(@src,'../../static/images/databytes/colors/frame-0164.jpg')]

正在尝试使用 XPATH 作为索引。

您将需要像这样使用find_element

left_img.find_element_by_xpath(".//*[contains(@src, '../../static/images/databytes/colors/frame-0164.jpg')]")

尽管如此,我还是建议您找到一条更直接的路径:

direct_path = driver.find_element_by_xpath(".//div[@class='visual']/div[@class='col-sm-6']//img[@class='color-frame' and contains(@src, 'frame-0164.jpg')]")

如果要获取元素并然后检查其src属性,请尝试以下操作:

direct_path = driver.find_element_by_xpath(".//div[@class='visual']/div[@class='col-sm-6']//img[@class='color-frame']")
src_attribute = direct_path.get_attribute('src')

SIDENOTE :根据注释中的错误消息,您正在运行不支持当前版本的旧版chromedriver 2.35 的Chrome 67 ,请也转到HERE更新您的 chromedriver 。对于版本67,建议使用当前的chromedriver 2.40

答案 1 :(得分:0)

您可以尝试使用以下代码:[您可以像这样从DOM中获取 src 属性,使用WebDriverWait总是很好]

img = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div.color-squares.squares-20+img')))  
source = img.get_attribute("src")  
print(source)  

请注意,您必须导入以下内容:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC  

如果您正在寻找 xpath ,那就是:

//div[contains(@class,'color-squares squares-20')]/following-sibling::img

答案 2 :(得分:0)

下面是img元素的XPath

//img[@class='color-frame'][contains(@src,'frame-0164.jpg')]