我在这个平台上遵循了几个解决方案来解决这个问题,尤其是使用SeleniumBasic为vba 选择隐藏菜单项的问题
我可以在我试图自动化的网站的菜单上悬停,但我无法点击表格行(索赔提交(,这是表格/表格可见时的第二个选项。
我最初的目标是将鼠标悬停在页面的可见菜单上以显示下拉菜单,我通过循环实现了这一点。
现在,当(索赔(菜单可见时,我需要单击该表的第二个选项(索赔提交(。根据Trouble为vba使用SeleniumBasic选择隐藏菜单项的指示,我尝试使用xpath来引用该元素。
它返回
运行时错误"7":
NoSuchElementError
XPath=//a[./span[contains(.,'ClaimsSubmission'(]]找不到元素
Private WB As Selenium.WebDriver
Sub Test()
Set WB = New Selenium.ChromeDriver
WB.Start
WB.Get "https://health.axamansard.com/axamansardProviderlogin/Index.aspx"
Dim Menu As WebElement
Dim Menus As WebElements
Dim MenuSubmission As WebElement
WB.FindElementByName("txtUname").SendKeys "Almadina"
WB.FindElementByName("txtPass").SendKeys "Nhisdesk@1234"
WB.FindElementByName("btnSubmit").Click
Set Menus = WB.FindElementsByClass("a")
For Each Menu In Menus
If Menu.Text = "Claims" Then
WB.Mouse.MoveTo Menu
Set MenuSubmission = WB.FindElementByXPath("//a[.//span[contains(.,'Claims Submission')]]")
MenuSubmission.Click
End If
Next
End sub
WebScript
<table class="menu" id="Claims" width="150px" bgcolor="white" style="visibility: hidden;">
<tbody><tr height="19px">
<td class="menu"><a class="a"
href="../Forms/ClaimsBatch.aspx">Claims Batch</a></td>
</tr>
<tr height="19px">
<td class="menu"><a class="a"
href="../Forms/ClaimSubmission.aspx">Claims Submission</a></td>
</tr>
<tr height="19px">
<td class="menu"><a class="a"
href="../Forms/ClaimSubmissionList.aspx">Claims Submission List</a></td>
</tr>
<tr height="19px">
<td class="menu"><a class="a"
href="../Forms/ClaimsUpload.aspx">Claims Upload</a></td>
</tr>
<tr height="19px">
<td class="menu"><a class="a"
href="../Forms/Calimreviewlist.aspx">Claims Status</a></td>
</tr>
<tr height="19px">
<td class="menu"><a class="a"
href="../Forms/ProviderClaimsBatchDetails.aspx">Provider Claims Batch Details/Claim Credit Note Details</a></td>
</tr>
</tbody></table>
链接索赔提交的扩展路径似乎有点错误。您可以使用以下定位器策略之一:
-
FindElementByXPath:
WB.FindElementByXPath("//table[@id='Claims']//td/a[.='Claims Submission']").Click
-
FindElementByXPath相对于声明:
WB.FindElementByXPath("//a[.='Claims']//following::table[1]//td/a[.='Claims Submission']").Click