没有这样的元素:无法找到元素:{“方法”:“ css选择器”,“选择器”:“。flexipageTabset> .uiTabBar.uiTabItem.title”}

时间:2019-07-05 08:37:30

标签: testing selenium-webdriver css-selectors salesforce

当我尝试在Salesforce中测试闪电组件时,我试图在其中显示错误。 这是元素:-

<span class="title" data-aura-rendered-by="1261:0">Family Records</span>

我尝试了所有locator元素,例如XPath,CSS。它没有ID

WebElement Family = driver.findElement(By.cssSelector(".flexipageTabset>.uiTabBar.uiTabItem.title"));
        Family.click(); 

点击它后给我错误:-

  

没有这样的元素:无法找到元素:{“ method”:“ css   选择器“,”选择器“:”。flexipageTabset> .uiTabBar.uiTabItem.title“}

1 个答案:

答案 0 :(得分:0)

如果该元素是页面上唯一具有ClassName“标题”的元素,则只需按ClassName即可获取该元素:

IWebElement elem = driver.FindElement(By.ClassName("title"));

如果该元素不是唯一具有ClassName“ title”的元素,而是唯一具有该ClassName的父元素的元素,则可以获取父元素,然后获得子元素:

IWebElment elem = driver.FindElement(By.Id("ParentID")).FindElement(By.ClassName("title"));

如果这些方法都不起作用,并且您已经验证了XPath和CSS选择器是正确的,但是您仍然遇到问题,可以尝试一些解决方法,但是除非您已经筋疲力尽,否则我不建议您使用它所有其他选项:

  1. 获取父元素
  2. 获取父项下的所有“标题”元素:FindElements(By.ClassName("title"));
  3. 将所有元素存储在列表中并对其进行迭代,直到找到其文本与“家庭记录”匹配的元素。
  4. 找到匹配项后,存储该元素并继续执行程序。