• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:4.2.0
软件大小:45M
更新时间:2025-11-06

按键精灵iOS版
立即下载

软件版本:2.4.2
软件大小:29.2M
更新时间:2025-09-24

按键手机助手
立即下载

软件版本:4.5.0
软件大小:242M
更新时间:2025-11-06

快捷导航

登录 后使用快捷导航
没有帐号? 注册

返回列表 «7172737475767778» / 90
发新话题 回复该主题

[神梦] 【插件】神梦填表插件 SmWeb.dll,【IE】【谷歌】【网页】【元素... [复制链接]

1481#

优秀!!!!

1482#

神梦填表插件配合懒人办公插件,整体来说一般的使用(读写excel并与网页交互)能够满足使用(免费版)。但是,免费版也存在一些局限,经过使用,发现,虽然宣称支持框架穿透,但实际对iframe只能部分穿透(原因后面再说),frame没有试过,不做结论。
iframe只能部分穿透具体来说,就是若果操作的网页(至数据交互的页面)若果在iframe中,且,该页面是通过其他链接(若干个)手动打开的话,那么iframe中的元素是可以定位的。
举例说明:
假设1.打开首页,2.点击链接1,3.点击链接2打开iframe页面,4.后续操作;只有1,2,3是手动打开,那么,按键精灵可以对iframe中元素进行操作。也就是能穿透,但1,2,3是手动的,
若果1,2,3均是按键精灵来点击的,那么,iframe中元素将无法定位,所以也操作不了。简单说,就是iframe页面必须手动打开。
所以是部分穿透。
按键精灵的框架操作命令frame_laod多次尝试一直没有弄明白真没用,希望有大侠指导。
按键支持运行js命令,所以考虑iframe的操作能否用js来执行(按键实际就是执行的js命令,打包了使用简单)。
首先,要定位iframe,在定位iframe里的元素,进行操作。
以下两个函数供参考。
Function iframeClick(ifr_nm,id) //ifr_nm:iframe的名字,id:iframe里元素的id
Dim Code
Code = Code & "var ifra = window.top.document.getElementById('" & ifr_nm & "').contentWindow;"
Code = Code & "ifra.document.getElementById('" & id & "').click();"
TracePrint Code
TracePrint Plugin.SmWeb.TabRunJS(0, Code)
End Function
Function iframeInput(ifr_nm,id,txt) //ifr_nm:iframe的名字,id:iframe里元素的id,txt:待输入的文本
Dim Code
Code = Code & "var ifra = window.top.document.getElementById('" & ifr_nm & "').contentWindow;"
Code = Code & "ifra.document.getElementById('" & id & "').value =' "& txt &" ';"
TracePrint Code
TracePrint txt
TracePrint Plugin.SmWeb.TabRunJS(0, Code)
End Function


iframe如果没有name,可以用标签(iframe)定位:
document.getElementsByTagName('iframe')[1].contentWindow.document.getElementById('serNbr').value ='123456789';
iframe用标签(iframe)定位、元素用标签(iframe)定位: .length 返回符合条件的标签数量

document.getElementsByTagName('iframe')[1].contentWindow.document.getElementsByTagName('td').length 以下命令返回第二个iframe中的td元素的个数
document.getElementsByTagName('iframe')[1].contentWindow.document.getElementsByTagName('td')[1] 以下命令返回第二个iframe中的第一个td元素

所有命令需要返回结果的话,通过return语句。
return document.getElementsByTagName('iframe')[1].contentWindow.document.getElementsByTagName('td').length
若果不重复使用,可以直接调用:
CODE = "return document.getElementsByTagName('iframe')[1].contentWindow.document.getElementsByTagName('td')["& tc(c) &" ].innerText;"
// TracePrint CODE
td(0, 1) = Plugin.SmWeb.TabRunJS(1,CODE)

最后编辑bj917 最后编辑于 2023-08-17 14:20:39
1483#


.感谢分享!!!!!

1484#

好好哈哈

1485#

需要需要

1486#

好东西,看看学习

1487#

66666666

1488#

看看

看看

1489#

学习使用

1490#

密码

1491#

想要

1492#

4312431241431

1493#

感谢分享!!!

1494#


支持一下,谢谢分享。

1495#

看看是啥 有什么用

1496#

回复

1497#

看看

1498#


1499#

感谢大佬分享

1500#


发新话题 回复该主题