找回密码
 加入
搜索
查看: 16644|回复: 18

[IE类操作] 没有ID,没有Name的网页控件,如何点击?(已解决!)

 火.. [复制链接]
发表于 2013-3-8 17:02:47 | 显示全部楼层 |阅读模式
本帖最后由 xlj310 于 2013-3-14 15:17 编辑

请大家帮个忙:最近在整理淘宝上的订单时,想到如何自动导出一段时间的订单,因此想用Au3来代替人工做这些操作。
但在“生成报表”这个按钮上碰到了难题。我的目的就是要点击“生成报表”这个按钮!
以下是进行淘宝页面的截图(需是卖家):

网页源代码是:
<DIV class=actions><A class="long-btn generate-sheets"
onclick=applyExport()>生成报表</A> </DIV>


6楼的方法是可以的,谢谢!!!
#include <IE.au3>
$oIE = _IEAttach("http://trade.taobao.com/trade/itemlist/list_sold_items.htm","url")
$TagA=_IETagNameGetCollection($oIE,"A")
For $A In $TagA
        If $A.innertext='生成报表' And $A.classname='long-btn generate-sheets' And $A.classname<>'0' Then
                $A.click()
        EndIf
Next

10楼的方法也是可以的,只是代码有点长,难以消化,现在只是测试了一下,非常感谢!有时间再学习学习!

8楼的方法我试过,没有成功,不过这也是一种思路,期待完善!
$oIE.JavaScript("applyExport")



非常感谢各位的热心解答,现在工作有点忙,也没有经常在论坛,所以没有及时与大家交流并采纳答案,希望多多谅解!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2013-3-9 16:21:44 | 显示全部楼层
怎么没有人回答呢?我试过用        _IELinkClickByIndex($oIE,$i)不顶用!!
发表于 2013-3-10 16:54:54 | 显示全部楼层
怎么没有人回答呢?我试过用        _IELinkClickByIndex($oIE,$i)不顶用!!
xlj310 发表于 2013-3-9 16:21


看了一下,这里页面是用了iframe框架,先找出框架,然后再找框架里面的元素,希望可以给到提示你。
发表于 2013-3-10 16:58:08 | 显示全部楼层
参考一下这个,http://www.autoitx.com/forum.php ... hlight=%BF%F2%BC%DC  或者 http://www.autoitx.com/forum.php ... hlight=%BF%F2%BC%DC

或者搜索一下“框架”了解更多。。。
发表于 2013-3-12 11:44:20 | 显示全部楼层
本帖最后由 星雨朝霞 于 2013-3-14 11:17 编辑
#include <IE.au3>
$oIE = _IEAttach("http://trade.taobao.com/trade/itemlist/list_sold_items.htm","url")
$TagA=_IETagNameGetCollection($oIE,"A")
For $A In $TagA
        If $A.innertext='生成报表' And $A.classname='long-btn generate-sheets' And $A.classname<>'0' Then
                $A.click()
        EndIf
Next
这个按钮的TagName为 A 那就取整个网页TagName为 A 的网页元素集合
再一个个去对比这个按钮对象有内容的属性,找出来之个给它个点击命令.
发表于 2013-3-13 13:27:59 | 显示全部楼层
$oIE.JavaScript("applyExport")
发表于 2013-3-14 00:59:17 | 显示全部楼层
这个按钮的TagName为 A 那就取整个网页TagName为 A 的网页元素集合
再一个个去对比这个按钮对象有内容的属 ...
星雨朝霞 发表于 2013-3-12 11:44


--> IE.au3 V2.4-0 Error from function _IETagNameGetCollection, $_IEStatus_InvalidDataType


win7 64bit...为什么匹配不了?
发表于 2013-3-14 01:09:17 | 显示全部楼层
回复 8# huangke

用http吧,7里的ie很麻烦
发表于 2013-3-14 11:04:15 | 显示全部楼层
本帖最后由 xzxnovice 于 2013-3-14 11:19 编辑
Func clickbyinnerText($oIE, $str)
        $oElements = _IETagNameAllGetCollection($oIE)
        For $oElement In $oElements
                If String($oElement.innerText) = $str Then
                        $oElement.click
                        Return SetError(0, 0, $oElement)
                        ExitLoop
                        ConsoleWrite("Tagname: " & $oElement.tagname & @CR & "innerText: " & $oElement.innerText & @CRLF)
                EndIf
        Next
        ConsoleWrite("找不到 " & $str & @CRLF)
        Return SetError(1, 0, "找不到" & $str)
EndFunc   ;==>clickbyinnerText

Func clickbutton($oIE, $str, $sf = "input")
        $oElements = _IETagNameGetCollection($oIE, $sf)
        For $oElement In $oElements
                
;~                 ConsoleWrite("Tagname: " & $oElement.tagname & @CR & "innerText: " & $oElement.innerText & @CRLF)
                If String($oElement.value) = $str Then
        
                        $oElement.click
                        Return SetError(0, 0, $oElement)
                        ConsoleWrite("find " & $str & @CRLF)
                        ExitLoop
                        
                EndIf
        Next
        ConsoleWrite("找不到 " & $str & @CRLF)
        Return SetError(1, 0, "找不到" & $str)
EndFunc

$oIE=_IEAttach("trade.taobao.com","URL")
$oIE.document.all.J_SearchOrders.click
_IELoadWait($oIE)
$oIE.document.all.J_BatchExportBtn.click
_IELoadWait($oIE)
clickbyinnerText($oIE,"生成报表")
发表于 2013-3-14 11:18:03 | 显示全部楼层
回复 8# huangke


    windows7 64位 IE10通过
 楼主| 发表于 2013-3-14 15:07:23 | 显示全部楼层
回复 6# 星雨朝霞


    你这个方法可以,谢谢!!!
发表于 2013-3-14 22:48:05 | 显示全部楼层
回复  huangke


    windows7 64位 IE10通过
星雨朝霞 发表于 2013-3-14 11:18



    windows7 64位 IE9不能通过,晕了,。。。什么问题呢?是不是需要升级IE?用了其他浏览器也不行啊,360,the world什么的都不行啊
发表于 2013-3-15 00:28:15 | 显示全部楼层
你确定你已经用IE打开代码中的那个网页?并页面是和LZ的图片一样?
发表于 2013-3-15 13:05:24 | 显示全部楼层
你确定你已经用IE打开代码中的那个网页?并页面是和LZ的图片一样?
星雨朝霞 发表于 2013-3-15 00:28



    _IEAttach我用了句柄,标题,URL(我用Isobject有返回1)都不行,后来_IEAttach百度的,居然也不行,不知道是不是系统问题了,好奇怪啊。。
发表于 2013-3-17 21:02:42 | 显示全部楼层
win7 64bit...为什么匹配不了?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-22 03:17 , Processed in 0.079619 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表