CasperJS:单击复选框不会像在浏览器

时间:2015-10-24 22:03:40

标签: casperjs

我正在尝试在CasperJS中自动化一个过程。但是,我在实际浏览器上的行为与CasperJS中的行为之间存在一些差异。

更新:使用slimerJS处理工作正常,但无头问题

这是我的剧本:

var casper = require('casper').create({
    "waitTimeout": 10000
});

var inputElements = {
    "url": "http://www.jabong.com/incult-Tapered-Jeans-In-Indigo-1032119.html?pos=4",
    "size": "34",
    "address": {
        "email": "someemail@xyz.com"
    }    
}

casper.options.viewportSize = {width: 1679, height: 902};

casper.start(inputElements.url, function (){
    this.wait(10000, function (){
        console.log("loaded");
    })
});

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

var sizeToSelect = inputElements.size;

// select size
casper.thenClick(x("//*[contains(@class,'size-desktop')]//"+
  "li[contains(@class,'first') and contains(@class,'popover-options')]//"+
  "span[contains(text(),'"+sizeToSelect+"')]/"+
".."));

// add to bag
casper.thenClick(x("//*[@id='add-to-cart']"));

// view cart
casper.thenClick(x("//*[@id='header-bag-sec']/a"))

// take a screenshot
casper.then(function() {
    console.log("saving screenshot");
  this.capture('../../1_view_cart.png');
});

casper.then(function() {
  console.log('clicked ok, new location is ' + this.getCurrentUrl());
});

// place order
casper.then(function (){
    this.click("[href='https://www.jabong.com/checkout/']");
})

// take a screenshot
casper.then(function() {
    console.log("saving screenshot");
  this.capture('../../2_address_details.png');
});

casper.then(function (){
    this.sendKeys("#login-email", inputElements.address.email);
})

casper.then(function (){
    this.click("#do-guest-checkout");
});

// take a screenshot
casper.then(function() {
    console.log("saving screenshot");
  this.capture('../../3_guest_checkout.png');   
});

casper.waitFor(function check() {
    return this.evaluate(function() {
        return document.querySelector('#btn-login-checkout').textContent == "Continue as Guest";
    });
}, function then() {
    this.click('#btn-login-checkout');
});


casper.run();

在最后一页上,单击浏览器上的“Checkout as Guest”复选框将删除密码输入字段,并将Login按钮的文本更改为“Continue as Guest”。附上截图:

enter image description here

但是,在CasperJS中,密码输入字段和登录按钮不会改变。知道我做错了什么吗?

enter image description here

0 个答案:

没有答案