【问题标题】:How to hover and click on hidden elements with Selenium Basic using VBA?使用 VBA 悬停并单击带有 seleniumBasic 的隐藏元素
【发布时间】:2022-01-25 16:45:26
【问题描述】:

大家节日快乐,我在这个平台上关注了几个解决这个问题的方法,尤其是Trouble selecting a hidden menu item using SeleniumBasic for vba

我能够通过我正在尝试自动化的网站的菜单悬停,但我无法单击表格行(索赔提交),这是表格/表格可见时的第二个选项。我最初的目标是悬停页面的可见菜单以显示下拉菜单,我通过循环实现了这一点,现在当(声明)菜单可见时,我需要单击该表的第二个选项(声明提交)。根据Trouble selecting a hidden menu item using SeleniumBasic for vba 的指示,我尝试使用 xpath 来引用该元素,但它返回了运行时错误“7”: NoSuchElementError XPath=//a[.//span[contains(.,'Claims Submission')]]

找不到元素

下面是使用的代码

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

这是网页脚本

<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>

希望我能得到一些帮助

【问题讨论】:

    标签: excel vba selenium selenium-webdriver webdriver


    【解决方案1】:

    链接 Claims Submission 的 xpath 似乎有点不对劲。您可以使用以下任一Locator Strategies:

    • FindElementByXPath:

      WB.FindElementByXPath("//table[@id='Claims']//td/a[.='Claims Submission']").Click
      
    • FindElementByXPath 相对于声明:

      WB.FindElementByXPath("//a[.='Claims']//following::table[1]//td/a[.='Claims Submission']").Click
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多