0

I'm trying to get the list of links on the menu on the left on this page: http://www.hpenterprisesecurity.com/vulncat

the first thing I'm trying to do is click the "Expand All" link (on the top left corner) so the list gets expanded.

I have tried multiple ways to use the Xpath in different ways with no success on this page, this was my last try:

casper.start('http://www.hpenterprisesecurity.com/vulncat', function() {
    casper.wait(5000);
    this.echo("---------- TITLE: ");
    this.echo(this.getTitle());

});    

casper.thenClick(x('//*[@id="theContentCenter"]/div/p/a[1]/strong[contains(text(),"Expand")]'),function(){
        casper.wait(5000,function(){
        casper.capture("expanded.png");
        });
    });

Maybe since the page lacks Ids and Tags for most elements my approach won't work?

Thanks

the set-up:

casper = require('casper').create({
    verbose:true,
    logLevel:"debug"
});


casper.userAgent('Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405');
casper.viewport = {width: 1280, height: 720};

var x = require('casper').selectXPath;

phantomjs: 1.9.8

casperjs: 1.1.0-beta3

RESOURCE ERROR:

[info] [phantom] Starting...
[info] [phantom] Running suite: 2 steps
[info] [phantom] Starting...
[info] [phantom] Running suite: 4 steps
[debug] [phantom] opening url: http://www.hpenterprisesecurity.com/vulncat, HTTP GET
[debug] [phantom] Navigation requested: url=http://www.hpenterprisesecurity.com/vulncat, type=Other, willNavigate=true, isMainFrame=true
[debug] [phantom] Navigation requested: url=http://www.hpenterprisesecurity.com/vulncat/en/vulncat/index.html, type=Other, willNavigate=true, isMainFrame=true
[debug] [phantom] url changed to "http://www.hpenterprisesecurity.com/vulncat/en/vulncat/index.html"
[debug] [phantom] Navigation requested: url=http://www.hpenterprisesecurity.com/vulncat/en/vulncat/header.html, type=Other, willNavigate=true, isMainFrame=false
[debug] [phantom] Navigation requested: url=http://www.hpenterprisesecurity.com/vulncat/en/vulncat/all.html, type=Other, willNavigate=true, isMainFrame=false
[debug] [phantom] Navigation requested: url=http://www.hpenterprisesecurity.com/vulncat/en/vulncat/intro.html, type=Other, willNavigate=true, isMainFrame=false
ResourceError: {
    "errorCode": 203,
    "errorString": "Error downloading http://www.hpenterprisesecurity.com/vulncat/en/vulncat/css/frame.css - server replied: Not Found",
    "id": 7,
    "url": "http://www.hpenterprisesecurity.com/vulncat/en/vulncat/css/frame.css"
}
ResourceError: {
    "errorCode": 2,
    "errorString": "Connection closed",
    "id": 9,
    "url": "http://www.fortifysoftware.com/images/gui/maincontent.level3.h1.bg.png"
}
[debug] [phantom] Successfully injected Casper client-side utilities
[info] [phantom] Step anonymous 2/4 http://www.hpenterprisesecurity.com/vulncat/en/vulncat/index.html (HTTP 200)
---------- TITLE:
A Taxonomy of Coding Errors that Affect Security
[info] [phantom] Step anonymous 2/4: done in 770ms.
[info] [phantom] Step _step 3/5 http://www.hpenterprisesecurity.com/vulncat/en/vulncat/index.html (HTTP 200)
[info] [phantom] Step _step 3/5: done in 770ms.
[info] [phantom] wait() finished waiting for 5000ms.
[info] [phantom] Step _step 4/5 http://www.hpenterprisesecurity.com/vulncat/en/vulncat/index.html (HTTP 200)
[debug] [phantom] Mouse event 'mousedown' on selector: xpath selector: //*[@id="theContentCenter"]/div/p/a[1]/strong[contains(text(),"Expand")]
CasperError: Cannot dispatch mousedown event on nonexistent selector: xpath selector: //*[@id="theContentCenter"]/div/p/a[1]/strong[contains(text(),"Expand")]
  /usr/lib/node_modules/casperjs/modules/casper.js:1355 in mouseEvent
  /usr/lib/node_modules/casperjs/modules/casper.js:462 in click
  /usr/lib/node_modules/casperjs/modules/casper.js:1793 in _step
  /usr/lib/node_modules/casperjs/modules/casper.js:1553 in runStep
  /usr/lib/node_modules/casperjs/modules/casper.js:399 in checkStep
Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL file:///usr/lib/node_modules/casperjs/bin/bootstrap.js. Domains, protocols and ports must match.

Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL file:///usr/lib/node_modules/casperjs/bin/bootstrap.js. Domains, protocols and ports must match.

Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL file:///usr/lib/node_modules/casperjs/bin/bootstrap.js. Domains, protocols and ports must match.
david
  • 741
  • 3
  • 10
  • 29
  • a) Which PhantomJS version do you use? b) Please register to the `resource.error`, `page.error`, `remote.message` and `casper.page.onResourceTimeout` events ([Example](https://gist.github.com/artjomb/4cf43d16ce50d8674fdf#file-2_caspererrors-js)). Maybe there are errors. c) Have you increased the viewport size? – Artjom B. Dec 18 '15 at 19:10
  • Phantomjs:1.9.8, viewport size:1280x720. I'll check the error logs, thanks! – david Dec 18 '15 at 19:18
  • added error output to my post, thank you – david Dec 18 '15 at 19:44
  • Possible duplicate of [How do I access an iframe from CasperJS?](http://stackoverflow.com/questions/12150194/how-do-i-access-an-iframe-from-casperjs) – Artjom B. Dec 18 '15 at 20:05
  • I haven't looked at the page. The link is in an frame, so you first have to change into the frame before you can click on it. – Artjom B. Dec 18 '15 at 20:06
  • Yes the link is on an iframe, I'll check the link. Thank you – david Dec 20 '15 at 04:49

0 Answers0