双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

java + swt 设计的浏览器,如何获得网页中的元素坐标位置呢

qq779114450 qq779114450 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

java + swt 设计的浏览器,如何获得网页中的元素坐标位置呢

js文件代码范例:

function getxy() {

mydiv = document.getElementById('lk')

// 获得mydiv里面的A元素
var mya = mydiv.getElementsByTagName('a')

// var abc = mydiv.getAttributeNode()

// 获得a元素中叫abc的连接
var n = 0
while (n < mya.length) {
if (mya.item(n).textContent == "百科") {
x = mya.item(n).offsetLeft
y = mya.item(n).offsetTop

}
n++
}

document.write(" "+x+" "+ y)
}
getxy()

</script>

如果把上面的JS代码插入到百度首页中,可以获得元素“百科”的坐标。

问题是,如果用SWT开发的浏览,希望JAVA调用JS代码来获得元素坐标,然后传回给JAVA。
类似下面的JAVA调用JS,但JAVA不能调用doucument方法,这就使得上面的JS文件无法正常运行。请问还有其他办法可以获得元素坐标吗?


import java.io.File;
import java.io.FileReader;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class T3 {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
engine.eval("print('你好')");
// java并不支持document方法,document是客户端浏览器的API
// engine.eval("document.getElementById('lk')");
}
}
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
qq779114450
Java SE 62,621 成员 307,251 内容