从UL

时间:2017-11-06 16:41:47

标签: java selenium selenium-webdriver webdriver

我正在尝试从以下HTML中提取href值<img ng-src=

//images.mycar.com之后的所有内容都是动态的。

这是一个<ul> <li>,它将是列表中的第一项。我希望能够捕获它,这样我就可以构建一个URL来点击图像。

很抱歉,如果我的帖子令人困惑......我会尽力澄清。

在示例//images.mycar.com/BJ/11/BJ11TFZ/BJ11TFZ-used-FORD-FIESTA-DIESEL-HATCHBACK-1-6-TDCi-95-Titanium-3dr-Diesel-Manual-RED-2011-HR-S-01.jpg

我想要提取的项目,然后我可以点击图片。

<!-- Begin Results List -->
  <ul id="resultsLists" class="o-media-list  c-animate  c-animate--show" ng-show="rc.results.vehicles.length" style="">
    <li id="BJ11TFZ" class="c-animate  c-animate--repeat  u-pb ng-scope" ng-repeat="car in rc.results.vehicles track by car.registration" style="">
      <div class="o-media  c-card  c-card--hover  c-card__block  u-p-0  u-shadowed  u-shadowed--hover">
        <div class="o-media__left  o-grid__col-sm-5  o-grid__col-xs-12  u-p-0  u-no-float--sm">

          <a ng-href="/used-car/FORD/FIESTA/BJ11TFZ" class="o-embed-responsive  o-embed-responsive--16by9  o-media__object  c-rollover" ng-click="rc.viewCar(car, $index)" href="/used-car/FORD/FIESTA/BJ11TFZ">
            <img ng-src="//images.mycar.com/BJ/11/BJ11TFZ/BJ11TFZ-used-FORD-FIESTA-DIESEL-HATCHBACK-1-6-TDCi-95-Titanium-3dr-Diesel-Manual-RED-2011-HR-S-01.jpg" alt="FORD FIESTA" class="o-embed-responsive__item  c-rollover__image" cs-src-responsive="[ [ 'small', '//images.mycar.com/BJ/11/BJ11TFZ/BJ11TFZ-used-FORD-FIESTA-DIESEL-HATCHBACK-1-6-TDCi-95-Titanium-3dr-Diesel-Manual-RED-2011-HR-M-01.jpg' ], [ 'retina', '//images.mycar.com/BJ/11/BJ11TFZ/BJ11TFZ-used-FORD-FIESTA-DIESEL-HATCHBACK-1-6-TDCi-95-Titanium-3dr-Diesel-Manual-RED-2011-HR-M-01.jpg' ] ]" src="//images.mycar.com/BJ/11/BJ11TFZ/BJ11TFZ-used-FORD-FIESTA-DIESEL-HATCHBACK-1-6-TDCi-95-Titanium-3dr-Diesel-Manual-RED-2011-HR-M-01.jpg">
          </a>
        </div>

3 个答案:

答案 0 :(得分:0)

如果我理解您的问题,请尝试从上面的代码中提取以下链接。

//images.mycar.com/BJ/11/BJ11TFZ/BJ11TFZ-used-FORD-FIESTA-DIESEL-HATCHBACK-1-6-TDCi-95-Titanium-3dr-Diesel-Manual-RED-2011-HR-S-01.jpg 

这很简单。一个纯粹的JavaScript解决方案是:

var imgUrl = document.getElementById("resultsLists").getElementsByTagName('img')[0].getAttribute('ng-src');

代码首先选择文档的主UL。然后它选择图像本身。然后它得到&#34; ng-src&#34;图像的属性并将其保存到变量imgUrl。

如果您正在尝试这样做,请告诉我。

答案 1 :(得分:0)

好的兄弟,那么有什么问题呢?如果你需要使用webdriver selenium和java 8 使用下一个方法

driver.findElements(By.xpath("//ul[@id='resultsLists']/li//img")).stream()
.map(e -> e.getAttribute("ng-src"))
.collect(Collectors.toList())

答案 2 :(得分:-1)

你可以在下面得到它。

String href = driver.findElement(by.xpath("//ul/li/div/div/a")).getAttribute("href")