我試圖單擊評估頁面上的x個對象,但它在所有日子星期日嘗試後失敗..我有以下代碼,您可以看到我建立一個列表對象在我的變量(稱爲itemsToAdd),然後我需要將它傳遞到評估頁面上,然後將這些對象進行點擊。使用CasperJS單擊評估頁面上的對象
我知道你不能將複雜的對象傳遞到評估頁面,但我嘗試過的每一次嘗試都失敗了..我試過了所有的東西,請幫助。我也嘗試過自定義js文件,但我無法得到這個工作。
$(function(ns) {
ns.myMethod = function(itemArray) {
var items = itemArray.items;
for (i = 0; i < items.length; i++) {
casper.thenEvaluate(function() {
casper.click(items[i].buttonId);
casper.waitUntilVisible(items[i].basketId, function() {
casper.echo(items[i].successMessage);
});
});
}
return this;
};
})(namespace('test'));
這是我的變量,buttonId是評估頁面上按鈕的DOM ID。 basketId是評估頁面上的另一部分,它被更新以表示點擊按鈕的工作。
復變
var itemsToAdd = {
'items': [
{
buttonId: '#button1',
basketId: '#nowInBasket1',
successMessage: 'It worked'
},
{
buttonId: '#button2',
basketId: '#nowInBasket2',
successMessage: 'this worked aswell'
}
]
};
調用代碼
test.myMethod(itemsToAdd);
您是使用自定義測試框架('$')還是將它發佈到某處?你能鏈接到它嗎? – 2014-10-19 17:30:28
什麼都沒有,顯然我們有jquery。 – user3773890 2014-10-19 21:02:34
jQuery在頁面上下文中有意義,但不在casper上下文中。 casper上下文中沒有DOM,所以大多數jQuery函數都會被破壞。 – 2014-10-19 21:12:06