【问题标题】:Webelement on salesforce page is not identified when running selenium script运行 selenium 脚本时无法识别 Salesforce 页面上的 Webelement
【发布时间】:2021-08-26 09:54:16
【问题描述】:

我有一个带有 xpath //button[@name='FinServ__FinancialAccountRole__c.Add_ITR'] 的 web 元素

添加 ITR

使用 chrome 中的开发人员工具在浏览器控制台中正确识别此按钮元素。 Chrome 版本是 92.0.4515.159

但运行脚本时未识别相同的元素。我检查了页面中没有 iframe 或框架。即使使用 Javascript 也无法识别元素。

感谢任何解决此问题的建议。

【问题讨论】:

    标签: selenium salesforce-lightning


    【解决方案1】:

    可能是因为FinServ__FinancialAccountRole__c 本质上是动态的,您是否在自动化窗口中看到我们有一个独特的条目

     //button[@name='FinServ__FinancialAccountRole__c.Add_ITR']
    

    如果没有,您可以尝试使用文本本身。

    //button[text()='Add ITR']
    

    在交互之前也有适当的延迟。

    【讨论】:

    • Xpath 不是动态的。该问题与单击上一页中的链接时在新选项卡中打开的页面有关,并且我使用旧窗口句柄来查找元素。我迭代到下一个窗口句柄,然后 xpath 被正确定位,并且在运行脚本时单击了按钮。
    • 你应该首先在你的帖子中提到这一点。没有人能猜到。
    • 即使我注意到在我发布问题后页面正在新标签中打开。
    【解决方案2】:

    页面已在窗口的新选项卡中打开。使用以下窗口处理代码迭代到新窗口:

    Set<String> windowIds = driver.getWindowHandles();
            Iterator<String> it = windowIds.iterator();
            while (it.hasNext()) {          
                driver.switchTo().window(it.next());
            }
    

    在迭代到新窗口句柄然后使用驱动程序对象后,元素在运行脚本时被正确定位。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 2017-07-05
      相关资源
      最近更新 更多