【问题标题】:Click on JavaScript link with onclick attribute单击带有 onclick 属性的 JavaScript 链接
【发布时间】:2021-03-23 20:10:18
【问题描述】:

我已经尝试了很多方法来找到具有onclick 属性的链接的解决方案,但我找不到线索 像这样的元素的 HTML

<a href="javascript:void(0);" onclick="dealSideLinkPage('/lawyerViews/lawOrders/newCase.jsp')">أمر أداء جديد</a>

我尝试使用ExecuteScript,但出现错误。我在 VBA 中使用硒 尝试这条线对我不起作用

.ExecuteScript "document.getElementByXPath(""//*[@id='SrvTabs1']/div/div/div[1]/nav/div/ul/li[3]/a"").click()"

【问题讨论】:

    标签: excel vba selenium xpath css-selectors


    【解决方案1】:

    您可以尝试这些 XPath 中的任何一个 -

    //a[text()='أمر أداء جديد']
    
    //a[contains(text(),'أمر أداء جديد')]
    

    注意:Onclick 和 style 属性不建议写 XPath。

    【讨论】:

      【解决方案2】:

      使用onclick 属性在文本为أمر أداء جديد 的元素上click() 可以使用以下Locator Strategies 之一:

      • 使用FindElementByLinkText

        driver.FindElementByLinkText("أمر أداء جديد").click
        
      • 使用FindElementByCss

        driver.FindElementByCss("a[onclick^='dealSideLinkPage'][onclick*='newCase']").click
        
      • 使用FindElementByXPath

        driver.FindElementByXPath("//a[starts-with(@onclick, 'dealSideLinkPage') and text()='أمر أداء جديد']").click
        

      【讨论】:

      • 我认为问题与元素的位置有关。第一次在循环中运行良好,没有问题,但在第二次循环中,问题出现element click intercepted。那么每次循环开始时如何才能到达网页顶部?
      • @YasserKhalil 请等待并重新测试。
      • 不,我确定问题不在等待。当我手动转到网页顶部时,该行运行良好。我自己测试过不止一次。
      • 我找到了一种更好的方法,它也使用了 ExecuteScript,这解决了.ExecuteScript "arguments[0].click();", .FindElementByXPath("//a[starts-with(@onclick, 'dealSideLinkPage') and text()='أمر أداء جديد']") 的问题。非常感谢您的大力支持。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      • 1970-01-01
      相关资源
      最近更新 更多