org.openqa.selenium.InvalidSelectorException: неверный селектор при попытке найти элемент - PullRequest
0 голосов
/ 26 марта 2019

Мой элемент отображается как:

<a class="main-item" href="#">Business Loans</a>

xpath:

//*[@id='main-nav']/ul/li[1]/a[1]']

Это возвращает invalid element locator

//*[@id='main-nav']/ul/li[1]/a']

driver.findElement(By.xpath("//*[@id='main-nav']/ul/li[1]/a[1]']"))

Я пытаюсь получитьэлемент.

Ответы [ 3 ]

0 голосов
/ 26 марта 2019

Try содержит функцию в xpath, она может извлечь все элементы, соответствующие определенному текстовому значению

//a[contains(text(),'Business Loans')]
0 голосов
/ 26 марта 2019

Это сообщение об ошибке ...

org.openqa.selenium.InvalidSelectorException: invalid selector

... подразумевает, что ваш xpath не был действительным.

Вы не можете использовать одинарную кавычку, например ' или двойную кавычку, т. Е. " как для значения By, так и для атрибута атрибут .


Решение

Вы можете использовать одну из следующих Стратегий локатора :

  • CSSSelector

    WebElement element = driver.findElement(By.cssSelector("#main-nav a.main-item"));
    
  • * 1035 XPath *:

    WebElement element = driver.findElement(By.xpath("//a[@class='main-item' and text()='Business Loans']"));
    
0 голосов
/ 26 марта 2019

Добро пожаловать на SO. Вот простой xpath.

//*[@id='main-nav]//a[@class='main-item' and .='Business Loans']

Если вы хотите использовать тот, который вы упомянули, вот исправленное.

driver.findElement(By.xpath("//*[@id='main-nav']/ul/li[1]/a[1]"))
...