2012-06-27 3 views
-1

Я использую селен для тестирования вспышки. Я хочу получить id тега embed. я использовал firepath, чтобы получить xapth и это выглядит как html/body/div[1]/div[6]/div/embedXPath Selenium Invalid xpath [2]

И когда я пытаюсь получить его как

browser.getAttribute(("xpath=//[html/body/div[1]/div[6]/div/embed]")); 

тогда я получаю com.thoughtworks.selenium.SeleniumException: ERROR: Invalid xpath [2]: //*[html/body/div[2]/div[6]/object/embedd

Я использую Селен 2 RC. Пожалуйста, кто-нибудь поможет получить атрибут id внутри тега embed.

+1

очень хорошая ссылка для использования XPaths: http://test-able.blogspot.ie/2016/04/xpath-selectors-cheat-sheet.html –

ответ

4

Похоже, вы неправильно используете getAttribute. Метод Selenium getAttribute принимает в качестве параметра атрибутLocator. Локатор атрибутов, как описывается документами, является локатором элемента (в данном случае ваш xpath), за которым следует «@» и имя атрибута (в данном случае id).

Попробуйте

String xpath = "xpath=//[html/body/div[1]/div[6]/div/embed]"; 
browser.getAttribute(xpath+"@id"); 

Также перепроверить свой код. Вы говорите в своем коде, что вы написали div[1], но ошибка говорит div[2] - возможно, вы просто сделали опечатку. Это объясняет ошибку xpath, хотя вам все равно нужно исправить использование getAttribute.

Selenium getAttribute docs.