нет такого элемента: невозможно найти элемент: {"method": "css selector", "selector": ". flexipageTabset> .uiTabBar.uiTabItem.title"} - PullRequest
0 голосов
/ 05 июля 2019

Я тестирую компонент молнии в Salesforce, когда я пытаюсь найти элемент в нем, он показывает мне ошибку.Это элемент: -

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

Я пытался со всеми элементами локатора Как и XPath, CSS .its не имеет идентификатора

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

, из-за которого после нажатия на него выдается ошибка: -

нет такого элемента: невозможно найти элемент: {"method": "css selector", "selector": ". FlexipageTabset> .uiTabBar.uiTabItem.title"}

1 Ответ

0 голосов
/ 05 июля 2019

Если элемент является единственным элементом на странице с ClassName "title", вы можете просто получить элемент по 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. Получить все элементы "title" под родительским элементом: FindElements(By.ClassName("title"));
  3. Сохранять все элементы в списке и проходить по ним, пока не найдете элемент, текст которого соответствует "Семейным записям".
  4. Когда вы найдете совпадение, сохраните этот элемент и продолжите работу с программой.
...