【问题标题】:cannot choose a unique locator to click an element - selenium java krypton无法选择唯一的定位器来单击元素 - selenium java krypton
【发布时间】:2018-10-22 08:13:41
【问题描述】:

我需要一个唯一的定位器,因为我不能使用文本,因为它都有功能,我需要点击这个

这是我现在的示例代码,但它没有点击

findLink(By.xpath("//*[ng-click()='promptGroupDrawerCtrl.closeDrawer()']")).click

【问题讨论】:

    标签: java selenium selenium-webdriver xpath krypton


    【解决方案1】:

    xpath有两个问题:

    ng-click 是一个属性,而不是一个方法。去掉圆括号。

    属性名称应以@开头

    findLink(By.xpath("//*[@ng-click='promptGroupDrawerCtrl.closeDrawer()']")).click();
    

    【讨论】:

      【解决方案2】:

      要点击文本为 Facility 的元素,您可以使用以下解决方案:

      findLink(By.xpath("//a[@class='h4 panel-heading panel-back panel-title btn ng-binding' and contains(@ng-click,'closeDrawer')]")).click
      

      注意:由于该元素是 Angular 元素,因此您必须诱导 WebDriverWait 以使所需的元素可点击

      【讨论】:

      • 那个定位器太可怕了。你有一个巨大的字符串匹配......如果这些类中的任何一个发生变化,或者一个被添加或一个被删除,整个事情都被打破了。这里不需要使用 XPath。最好使用 CSS 选择器并避免这一切。
      猜你喜欢
      • 1970-01-01
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      • 2020-08-10
      • 2014-09-27
      • 1970-01-01
      • 2020-03-01
      相关资源
      最近更新 更多