基本上我在safari中的一张巨大的桌子里面有一个链接。我想总是单击第2行第1列。链接的名称会更改在该单元格内。
这是HTML http://pastebin.com/UuwFfcyG
我在代码中放置了一个可视标记,我想点击它。但是在这个例子中你可以搜索“1222”并且它会向上拉。
一旦单击该链接,它就会打开一个窗口,我可以浏览并使用系统事件来选项和选择内容,然后重新加载页面并再次执行。
如果您可以告诉我如何检查下一栏中的文字,可以获得奖励。第2行第2列。如果显示“打开”,则单击左侧单元格中的链接。
完全披露我已经编写了一个AppleScript程序来执行此操作,但它使用由屏幕坐标控制的python点击来执行此操作,因此如果分辨率更改或我添加了另一个监视器,则会破坏程序。这太乱了,但绝对有效。我只是在寻找更原生的东西。
任何帮助将不胜感激!谢谢 布兰登
答案 0 :(得分:0)
所以你自动想看看这个表的第2行第1列是否有链接并点击它?
<script LANGUAGE="Javascript">
function clickLinksInTable(i) {
// check if a link even exists in this row
if (!document.getElementsByTagName("tr")[i+1].getElementsByTagName("td")[0].getElementsByTagName("a")[0] || !document.getElementsByTagName("tr")[i+1].getElementsByTagName("td")[1]) {
// fail silently.
} else {
// check if the next column to the right contains the word "open" .
if (document.getElementsByTagName("tr")[i+1].getElementsByTagName("td")[1].innerHTML.toLowerCase().indexOf("open") != -1) {
// get the row (tr) that the user wants (the first row never contains a link, so add one to i to avoid this being a problem)
// then get the first column (td) in that row, and then get the first (probably only) link in that column.
link = document.getElementsByTagName("tr")[i+1].getElementsByTagName("td")[0].getElementsByTagName("a")[0];
// then... click on it! While we're mainly focussed on Safari, it's good to support other browsers as well,
// just in case we want to use this code again elsewhere.
// Firefox
if (document.createEvent) {
var event = document.createEvent("MouseEvents");
event.initEvent("click", true, true);
link.dispatchEvent(event);
}
// IE
else if (link.click) {
link.click();
}
}
}
}
// call the function we made earlier. The value in brackets is the row number of the link you want to click.
// this will click the link in row two, column one.
clickLinksInTable(0);
// this would click the link in row five, column one.
//clickLinksInTable(3);
</script>
在桌子后添加。