PhantomJS (v1.5) と cli の javascript の両方を使用してテストを実行しています。テストは fedora/centos で実行されています。
このテストは、querySelector から html(type) 要素を返す際にエラー (ユーザーまたはその他) と思われるものを示しています。
2 つの項目がテストされます。1 つ目は入力、2 つ目はアンカーです
id=ICType の入力は正しく機能します。アンカーは、期待していた htmlAnchorType ではない href/content を返します。
私は、返された htmlAnchorElement で一種の foo.click() を実行できるようにしたいと考えています。これにより、選択したアンカーの href javascript が呼び出されます。ただし、返されるのが href コンテンツのみである場合、これは問題のようです..
ネットを見ても、私が間違ったことを思いついたわけではありません。
感想/コメント????
ありがとう
running on fedora
phantomjs foo.js
foo.js
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
//
var page = require('webpage').create();
var searchUrl = 'https://courses.osu.edu/psc/hcosuct/EMPLOYEE/HRMS/c/COMMUNITY_ACCESS.CLASS_SEARCH.GBL';
page.onConsoleMessage = function(msg) {
console.log(msg);
};
phantom.loadState = false;
page.onLoadFinished = function(status) {
console.log('called with state ' + phantom.loadState);
if (status !== "success") {
console.log("Unable to access network");
} else {
if (!phantom.loadState) {
page.evaluate(function() {
var aa1;
/*
we test two items, one is an input, which succeeds, the other is the anchor,
which fails
the querySelector should return an element htmlelement(type)..
for the ancho, it simply returns the href content... wth!!!
*/
var sub="ICType";
var t1 = document.querySelector("[id^='ICType']");
console.log(t1); //<<< this will be htmlelement. which is correct..
console.log("after ictype");
/*
the complete id for the anchor
var sub="CLASS_SRCH_WRK2_SSR_PB_SRCH$56$";
for testing, use a subset without the $.. doesn't make a difference..
*/
sub="CLASS_SRCH_WRK2_SSR_PB_SRCH";
t1 = document.querySelector("[id^='CLASS_SRCH_WRK2_SSR_PB_SRCH']");
console.log(t1); // <<< this should be htmlelement.. but is the href content.. WHY??????
console.log("test complete");
/*
-- IF the test ever generates the actual/correct htmlelemtent for the anchor
--the goal will be to then do a foo.click() to then run/invoke the
--underlying javascript for the anchor/href which is
<a class="SSSBUTTON_CONFIRMLINK"
href="javascript:submitAction_win0(document.win0,'CLASS_SRCH_WRK2_SSR_PB_SRCH$56$');"
tabindex="32" id="CLASS_SRCH_WRK2_SSR_PB_SRCH$56$"
name="CLASS_SRCH_WRK2_SSR_PB_SRCH$56$">
*/
//window.setTimeout(function () {
//submitAction_win0(document.win0,'CLASS_SRCH_WRK2_SSR_PB_SRCH$56$');
//}, 2000);
});
phantom.loadState = true;
} else {
console.log(page.content);
phantom.exit();
}
}
}
page.open(encodeURI(searchUrl));