我目前正在與phantomjs 2.1.1
和casper 1.1.0-beta5
自動執行基本登錄過程。但是,我沒有最好的運氣。在下面,我可以成功填寫帶有值的表單,但是當我嘗試提交時會出現問題。我曾嘗試使用click
,selectors
等提交表單,但沒有結果。有關如何用下面的代碼成功登錄的任何想法?提交表單或單擊提交輸入不工作
var casper = require('casper').create({
verbose: true,
logLevel: 'error',
viewportSize: {
width: 1280,
height: 720
},
pageSettings: {
ignoreSslErrors: true,
loadImages: false, // do not load images
loadPlugins: false, // do not load NPAPI plugins (Flash, Silverlight, ...)
webSecurityEnabled: false
}
});
var x = require('casper').selectXPath;
phantom.cookiesEnabled = true;
var fs = require('fs');
var cookies = JSON.stringify(phantom.cookies);
fs.write("cookies.txt", cookies, 644);
casper.start('https://www.quora.com/login', function() {
this.sendKeys("input[name=email]", "[email protected]", {
keepFocus: true
});
this.page.sendEvent("keypress", this.page.event.key.Tab);
this.sendKeys("input[name=password]", "xxxxxxx", {
keepFocus: true
});
});
casper.then(function() {
this.evaluate(function() {
document.getElementById('__w2_IXl7ObX_login_form').submit();
});
});
casper.then(function() {
this.capture('test.png');
});
casper.run();
截圖
HTML
<form id="__w2_gptxdFS_login_form" class="inline_login_form" method="POST">
<div class="title">Login</div>
<div class="form_inputs">
<div class="form_column">
<input id="__w2_gptxdFS_email" class="text header_login_text_box ignore_interaction" type="text" w2cid="gptxdFS" tabindex="1" name="email" placeholder="Email" group="__w2_gptxdFS_interaction">
</div>
<div class="form_column">
<input id="__w2_gptxdFS_password" class="text header_login_text_box ignore_interaction" type="password" w2cid="gptxdFS" tabindex="2" name="password" placeholder="Password" group="__w2_gptxdFS_interaction">
</div>
<input id="__w2_gptxdFS_submit_button" class="submit_button ignore_interaction submit_button_disabled" type="submit" w2cid="gptxdFS" tabindex="4" value="Login" group="__w2_gptxdFS_interaction">
</div>
</form>
表單中是否有任何提交按鈕? –
@jobinsjohn表單有一個提交輸入欄,標籤爲'login' – MaryCoding
您可以粘貼頁面外觀樣式和表單的HTML代碼截圖嗎?我已經給出了一個解決方案,但需要一個按鈕才能出現,我認爲這是最主要的情況。您將有一個用戶名字段,一個密碼字段和一個說明登錄或登錄的按鈕。 – prabugp