PhantomJS - 选择HTML元素

14
我正在使用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选择此元素?


2
检查元素是否存在 - przemoinho
1个回答

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();
  }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接