我目前正在为在saleforce上传文件做自动化。
HTML文字是:
<div>
<a href="javascript:void(0);" onblur="chatter.getFeed().contentCommentActionBlur(this);" onfocus="chatter.getFeed().contentCommentActionFocus(this);" onclick="chatter.getFeed().createContentComment(this,'0D52700002cc67d', false, true);" onmousedown="chatter.getFeed().contentCommentActionMouseDown(this);" class="cxcontentcommentaction">
<img class="cxcontentcommentactionimg" src="/s.gif">
<span class="cxcontentcommentactiontext">Attach File</span>
</a>
</div>
单击锚点用户需要按下并按“附加文件”按钮。
我尝试了两种不同的做法
1.通过anchor class =“cxcontentcommentaction”编译get元素:
Set htmldoc = mydoc.getElementsByClassName("cxcontentcommentaction")
htmldoc.Click
2.使用span class =“cxcontentcommentactiontext”编译get元素:
Set htmldoc = mydoc.getElementsByClassName("cxcontentcommentactiontext")
htmldoc.Click
对于这两个我收到错误“对象不支持此属性
发表评论后,我试过这样的事,
Set oElementCollection = mydoc.getElementsByClassName("cxcontentcommentactiontext")
For Each link In oElementCollection
If link.innerHTML = "Attach File" Then
link.Click
Exit For
End If
Next link
我试过以下HTML
<a href="javascript:window.invokeOnClickJS_00bG0000000ikPK%28this%29" class="menuButtonMenuLink">
Send an Email</a>
以下代码适用于上面的html
Set oElementCollection = mydoc.getElementsByClassName("menuButtonMenuLink")
For Each link In oElementCollection
If link.innerHTML = "Send an Email" Then
link.Click
Exit For
End If
Next link
但是在这个问题中提到的“附加文件”按钮只有问题。
答案 0 :(得分:4)
方法HTML
返回具有此类名的元素集合。这是因为DOM
s
可以包含具有相同类名的多个元素。这就是复数形式getElement ...
Set oElementCollection = mydoc.getElementsByClassName("cxcontentcommentaction")
oElementCollection(0).Click
...
的原因。所以你需要知道你需要的元素集合中的哪个元素。如果是第一个,那么:
For i = 0 To oElementCollection.Length - 1
MsgBox oElementCollection(i).innerHTML
Next
如果第一个不正确,请尝试
Set oElementCollection = mydoc.getElementsByClassName("cxcontentcommentactiontext")
找到合适的人。
修改强>
在问题中添加后:
带
span
您可能收集了span
个对象而非链接。但是那些Set oElementCollection = mydoc.getElementsByClassName("cxcontentcommentactiontext")
For Each span In oElementCollection
If span.innerHTML = "Attach File" Then
span.parentNode.Click
Exit For
End If
Next span
元素应该在链接中。所以链接是他们的父母。
所以
D
答案 1 :(得分:0)
Alex Richter的回答是正确的,我也有类似的问题。因此,如果它没有解决您的问题,请告诉我们,我也会检查我的解决方案。
虽然建议在该行之后直接放置断点并观察结果是否选择了正确的断点。
此外,它还允许在代码停止时编辑代码,因此您可以添加另一行进行测试。或者您也可以设置下一条指令继续。
这样的技巧可以节省你很多时间来完善正确的实现。
如何尝试解决此问题的另一种方法是使用内置在控制台中的浏览器:只需点击F12并选择控制台选项卡。
=&GT;文件
&lt; = HTMLDocument =&gt; https://stackoverflow.com/ ......
=&GT; document.getElementsByClassName( '当前站点')
&lt; = HTMLCollection []