我已经尝试了几天的解决方案-不知何故,我只是设法找到一个可行的解决方案。
不幸的是,我无法提供所拥有网页的URL,因为它需要登录名和密码-我无法共享。
我已经有了VBA代码,可以执行所有操作,登录到网页-在页面内提供正确的信息,然后单击“验证”按钮。但是问题是我应该看看是否出现以下文本: ENQUADRAMENTO EM VIGOR-如果可以,我将以略有不同的方式继续该过程,如果没有,我将以不同的方式继续。
下面是网页中的代码:
<tr>
<td>
<table cellpadding="4" border="0" width="100%">
<tbody><tr>
<td class="fieldTitleBold" style="width=30%">Enquadramento em IVA</td>
<td class="fieldValue" colspan="3">NORMAL TRIMESTRAL</td>
</tr>
<tr>
<td style="width=10%" class="fieldTitleBold">Situação</td>
<td class="fieldValue" colspan="3">ENQUADRAMENTO EM VIGOR</td>
</tr>
</tbody></table>
</td>
</tr>
我尝试了许多不同的方法,最近尝试过的方法是使用byclassname(出于类似的目的,它在不同的网站上为我工作),但由于某些原因在这里不起作用:
Set doc = ie.document
Set htmTable = doc.getElementsByClassName("ENQUADRAMENTO EM VIGOR")(0)
If Not htmTable Is Nothing Then
'继续,取决于是否以不同方式找到文本
答案 0 :(得分:1)
ENQUADRAMENTO EM VIGOR
是.innerText
值而不是类名。该类值为fieldValue
,并与一个td
(表单元)元素相关联。
如果只发生一次,这很容易。使用Instr查看页面html中是否存在
If Instr(ie.document.body.innerHTML,"ENQUADRAMENTO EM VIGOR") > 0 Then
否则,您可以使用该类名称收集nodeList
个元素中的td
个,并循环测试.innerText
Dim classes As Object, i As Long
Set classes = ie.document.querySelectorAll("td.fieldValue")
For i = 0 To classes.Length - 1
If classes.item(i).innerText = "ENQUADRAMENTO EM VIGOR" Then
'do something
'Exit For ....
End If
End Sub
答案 1 :(得分:0)
$(document).ready(function() {
var lenfV = document.querySelectorAll(".fieldValue");
for(let i=0;i<lenfV.length;i++) {
if(lenfV[i].innerHTML == "ENQUADRAMENTO EM VIGOR") {
console.log("is there");
}
//else {console.log(213423);}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p> I think, The below option will help you</p>
<table>
<tr>
<td>
<table cellpadding="4" border="0" width="100%">
<tbody><tr>
<td class="fieldTitleBold" style="width=30%">Enquadramento em IVA</td>
<td class="fieldValue" colspan="3">NORMAL TRIMESTRAL</td>
</tr>
<tr>
<td style="width=10%" class="fieldTitleBold">Situação</td>
<td class="fieldValue" colspan="3">ENQUADRAMENTO EM VIGOR</td>
</tr>
</table>
</td>
</tr>
</table>