【问题标题】:xpath for background-image url背景图像 url 的 xpath
【发布时间】:2015-09-03 15:02:06
【问题描述】:

我正在尝试使用 xpath 获取背景图片 url。

到目前为止我的 xpath 表达式:

//div[@class='Header']/div[@class='Header-jpeg']

它指向具有background-imagediv,但从那里不知道如何获取img url,可能在@style 中,但到目前为止还没有运气。

那个 div 的 CSS:

div.Header-jpeg {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 874px;
    height: 94px;
    background-image: url('images/Header.jpg');
    background-repeat: no-repeat;
    background-position: center center;
}

这里有一个真实的例子: http://www.landenkompas.nl/

【问题讨论】:

    标签: html css xpath


    【解决方案1】:

    这样的事情应该可以工作:

    substring-before(substring-after(//div[@class='Header']/div[@class='Header-jpeg']/@style, 'background-image: url('), ')')
    

    但是,请注意,如果您使用的是 Java XPath,它只会获取它找到的第一个元素。如果您有多个,则需要找到另一种方法来聚合所有值。

    【讨论】:

    • 据我记忆,这是正确的答案,但有时可能会有些棘手,因为某些网站使用的东西略有不同,例如 "i 或额外的空间等
    【解决方案2】:

    假设您使用的是 selenium,您需要获取一个 CSS 属性的值

    在 Java 中:

    WebElement element = driver.findElement(By.xpath("//div[@class='Header']/div[@class='Header-jpeg']"));
    element.getCssValue("background-image");
    

    在 Python 中:

    element = driver.find_element_by_xpath("//div[@class='Header']/div[@class='Header-jpeg']")
    element.value_of_css_property("background-image")
    

    【讨论】:

      猜你喜欢
      • 2016-02-10
      • 2020-01-23
      • 2014-02-03
      • 2011-09-19
      • 1970-01-01
      • 2013-09-20
      • 2022-07-21
      • 1970-01-01
      • 2021-11-21
      相关资源
      最近更新 更多