群里的一个人问的。其实直接用wb.querySelector 取下来转换很简单的。
他用的chrome.driver,通过js取出来的,怎么保存图片都是黑框框。
仔细比较了下文本里带%OA,网页上默认的是没有的,应该是url编码的问题,试着用aardio里面的inet.url库里带的函数来解码。解了还是不行。
算了,只有魔法才能打败魔法,既然是js里编码的事情,那就还是js去解吧。
脚本里加上一段解码函数。OK了。
上代码吧。
import win.ui;
import console;
import chrome.driver;
import crypt.bin;
import inet.url;
/*DSG{{*/
mainForm = win.form(text="aardio form";right=973;bottom=619)
mainForm.add(
button={cls="button";text="Button";left=862;top=75;right=945;bottom=109;z=2};
custom={cls="custom";text="自定义控件";left=35;top=76;right=793;bottom=565;z=1}
)
/*}}*/
driver = chrome.driver();
var browser = driver.startBrowser();
browser.go("http://tysfrz.pt.ouchn.cn/lyuapServer/login?service=http%3A%2F%2Fmenhu.pt.ouchn.cn%2F%23%2F&tdsourcetag=s_pcqq_aiomsg");
//wb.wait(".index-captcha-2FKeU",3000);
/*
var codestr= wb.querySelector(".index-captcha-2FKeU>img").src;
*/
getimg = function(){
var codejs="return decodeURI(document.querySelector('div.index-captcha-2FKeU>img').src)";
var codestr= browser.doScript(codejs);
if(codestr){
base64 = string.replace(codestr,"^data\:image\/(\w+);base64,", "");
var bmp = crypt.bin.decodeBase64(base64);
string.save("\www1.png",bmp);
}
}
mainForm.button.oncommand = function(id,event){
getimg();
}
mainForm.show();
return win.loopMessage();