我正在尝试检查此图像的src
属性的值(以蓝色突出显示):
这是我正在尝试的(不起作用):
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')]
答案 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')]