我們正在進行一些測試,以使用Phantomjs 2.0連接到salesforce.com。 它工作的很好,但在過去幾周salesforce.com不斷要求每次新會話的驗證碼。使用Phantomjs 2.0登錄到salesforce.com繼續要求驗證碼
有沒有人遇到同樣的問題?
我們正在進行一些測試,以使用Phantomjs 2.0連接到salesforce.com。 它工作的很好,但在過去幾周salesforce.com不斷要求每次新會話的驗證碼。使用Phantomjs 2.0登錄到salesforce.com繼續要求驗證碼
有沒有人遇到同樣的問題?
這也許應該是一個評論,但我沒有必要點意見,請原諒「答案」。這是一個可行的答案,因爲我不是很精通casper/phantom,所以我會更新嘗試的解決方案。希望我的嘗試會幫助別人。
是否有人遇到同樣的問題?
答:是
問題:作爲Salesforce Spring '16 update從新的瀏覽器登錄到SF時SF認證用的驗證代碼的用戶(可以用一個新的瀏覽器eg.firefox進行測試) 。奇怪的是,這個問題不會在隱身會話中複製。
建議的解決方案:創建一個cookie文件&用casper/phantom腳本登錄SF。將身份驗證保存到JS cookie文件,否則每次登錄都需要驗證。
測試步驟:
我們可以看到使用卡斯帕/幻覈銷單。
var fs = require('fs'); //top of script
var html = this.getHTML(); //place this in wait_function() after login()
fs.write('./output.html', html, 'w');
現在,我們可以「補」覈銷單用電子郵件發送代碼
this.click('phSearchInput', function() { //'phSearchInput' found in above extract
this.fill('form', {
'phSearchInput' : '*verification_number_here*'
}, true);
2.1似乎是與驗證後的最終重定向的問題。我不知道我能給這個多少時間(因爲它不是優先事項),我對JS很新。我會留下代碼以供參考/測試
/*Altered from http://blog.deadlypenguin.com/blog/2013/07/09/logging-into-salesforce-with-casperjs/ */
var LOGIN_URL, LOGIN_USERNAME, LOGIN_PASSWORD, casp;
casp = require('casper').create({
viewportSize: {
width: 1024,
height: 768
},
verbose: true,
logLevel: 'debug'
});
casp.userAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4');
if (!casp.cli.has('username') && !casp.cli.has('password')) {
casp.echo('Usage: $ casperjs sfdclogin.casper.js --username=USERNAME --password=PASSWORD [--prod]').exit(-1);
}
if (casp.cli.has('prod')) {
LOGIN_URL = 'https://test.salesforce.com//';
} else {
LOGIN_URL = 'https://test.salesforce.com/';
}
LOGIN_USERNAME = casp.cli.get('username');
LOGIN_PASSWORD = casp.cli.get('password');
casp.start(LOGIN_URL, function() {
this.log('Logging in', 'debug');
//login
this.fill('form', {
'username': LOGIN_USERNAME,
'pw': LOGIN_PASSWORD
}, true);
this.log('Logged in', 'debug');
});
casp.wait(5000, function() {
this.log('Varification START', 'debug');
this.fill('form', {
'emc': '*verification_number_here*'
}, true);
this.captureSelector('test.png', 'html');
this.log('Varification FINISHED', 'debug');
this.wait(6000)
}, 12000);
casp.then(function() {
//casp.waitForUrl('https://cs31.salesforce.com/home/home.jsp', function() {
this.log('Are we logged in??');
this.captureSelector('test2.png', 'html');
}, 12000);
casp.run();
添加一個cookie文件,希望驗證驗證保存在那裏。 (當我找出步驟3時,我會做到這一點)。
你是否檢查過他們允許這樣的事情?另外,*「有人遇到同樣的問題?」*不是一個特別有用的問題。什麼是您的實際*編程*問題? –
我們遇到了使用Phantomjs 2.0在Salesforce.com上運行selenium腳本的問題。每當我們在本地運行腳本時,我們都會得到驗證屏幕。 –