2015-07-20 3 views
1

Щелкните по элементу ниже указанного ниже кода HTML.Невозможно найти элемент с помощью Xpath

a class="add" href="/travelPlan_revamp/addTravel.htm?travel_type=D">Add</a> 

Я использую следующий Xpath: отображаетсяhtml/body/div[1]/div[2]/div/a

Но No Such Element Found исключение.

+0

Убедитесь, что элемент не находится внутри iframe. Xpath можно получить с помощью Firebug. –

ответ

1

К сожалению парням вещь это было в Iframe. Теперь я нашел решение, переключившись на iframe и нажав событие.

driver.switchTo(). Frame ("rightMenu"); driver.findElement (By.xpath ("html/body/div [1]/div [2]/div/a")). Click();

0

Трудно сказать, правильное ли выражение XPATH без HTML. Ваше выражение XPATH сказать:

  • Возьмите «а» элементы
  • Во 2-м сНу элемента
  • В первом сНу элемента
  • В элементе тела
  • То есть в HTML элемент

Таким образом, проверяется наличие элемента «a», который проверяет выражение Xpath.

1

Сначала убедитесь, что веб-элемент не находится внутри iframe. Если да, тогда вам нужно сначала переключиться на iframe, а затем попробовать щелкнуть элемент.

Кроме того, попробуйте ниже XPath, в случае, если вы захватили неправильный XPath: -

//a[@class='add' and .='Add']

1

Абсолютное XPath всегда начинается с косой черты '/'. Я думаю, вы использовали абсолютный xpath, и либо вы пропустили '/', либо указали здесь неправильно. Пожалуйста, проверьте его. Обычно абсолютное XPath будет выглядеть/html/тело/форма/дела [3]/дела [2]/дела [1]/дела [2]/ввод

1

Попробуйте XPath:

//a[contains(text(),'Add')]; 
+0

Ошибка org.openqa.selenium.InvalidSelectorException: недопустимый селектор: невозможно найти элемент с выражением xpath // a [содержит (текст(), 'Добавить')] из-за следующей ошибки: TypeError: Не удалось выполнить 'createNSResolver' в 'Document': параметр 1 не относится к типу «Узел». – Lokesh

0
//a[@class='add' and text()='Add'] 

Попробуйте это.

С помощью какого метода вы ищете элемент?

@FindBy (how = How.XPATH) 

или

driver.findElement(By.xpath()); 

Иногда обозначение @FindBy не нравится работать с XPaths правильно.

+0

Я использовал driver.findElement (By.xpath()) ;. Тем не менее он отображает ошибку – Lokesh

+0

Просто убедитесь, что вы обеспечиваете загрузку страницы, прежде чем пытаться найти элемент? Не могли бы вы поделиться фрагментом кода, который ищет элемент? Не согласитесь с тем, что проблема связана с xpath, если вы предоставили правильный html, поскольку одно из многих решений должно работать. – Iridann

+0

Если вы решили, что проблема может быть решена, вы можете закрыть ее и пометить ответ, иначе вы могли бы предоставить больше информации, чтобы мы можем лучше решить проблему? – Iridann

0

Try с этим ниже XPath

// а [содержит (текст(), 'Add')]

+0

Ошибка снова org.openqa.selenium.InvalidSelectorException: недействительный селектор: невозможно найти элемент с выражением xpath // a [contains (text(), 'Add')] из-за следующей ошибки: TypeError: Не удалось выполнить ' createNSResolver 'on' Document ': параметр 1 не имеет тип' Node '. – Lokesh

Смежные вопросы