PhantomJS - 选择html元素

时间:2016-11-25 12:45:24

标签: javascript html phantomjs

我正在使用phantomJS,我想从html网页中选择元素。

这是我在phantomJS中的代码:

var page = require('webpage').create();
var url = 'http://localhost:9001/build/browser/index.html';

page.open(url, function (status) {
  if (status === 'success') {
    var input = page.evaluate(function() {
      return document.querySelector('[fill="#ffcc00"]');
    }, 2000);
    console.log(input);
    phantom.exit();
  }
});

这是我的HTML:

<html lang="en-US" class=" js ">
    <head>
    </head>
    <body>
        <section class="mapSection">
            <article id="mainMap">
                <div id="map" class="leaflet1" >
                    <div class="leaflet2" >
                        <div class="leaflet3">
                            <div class="leaflet4">
                                <svg class="leaflet5" >
                                    <g>
                                        <path stroke="#000000" fill="#ffcc00" class="leaflet6" ></path>
                                    </g>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </article>
        </section>
    </body>
</html>

如何使用querySelector选择此元素?

1 个答案:

答案 0 :(得分:13)

你需要使用return !!document.querySelector('path[fill="#ffcc00"]')如果选择器存在则返回true,否则返回false。

var page = require('webpage').create();
var url = 'http://localhost:9001/build/browser/index.html';

page.open(url, function (status) {
  if (status === 'success') {
    var input = page.evaluate(function() {
      return !!document.querySelector('path[fill="#ffcc00"]'); // returns true if the selector is exist, otherwise false.
    }, 2000);
    console.log(input);
    phantom.exit();
  }
});