我正在使用 cli 中的 PhantomJS (v1.5) 和 javascript 运行测试。测试在 fedora/centos 上运行。
该测试说明了从 querySelector 返回 html(type) 元素时出现的错误(用户或其他错误)。
测试了两个项目,第一个是输入,第二个是anchor
带有 id=ICType 的输入正常工作,锚返回一个 href/content,它不是我期望的 htmlAnchorType。
我希望能够在返回的 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));