2017-02-22 14 views
0

У меня возникли проблемы при использовании selenium libary в ROBOT FRAMEWORK, пожалуйста, помогите.Выберите X-Path, который содержит слова другого X-Path

У меня есть раскрывающееся меню, в котором есть 2 элемента - 1 - это «Ресурс», а 2 - «Управление ресурсами». Я использую это ключевое слово:

Click element | // /дел [(содержит (@class, "комбо-список") или содержит (@class, "выпадающий"))]/потомок :: [. = "Ресурс"]

Но как-то , он только нажимает на Управление ресурсами вместо ресурса. Пожалуйста, поддержите. T_T

+0

Share точный 'HTML' код для того же – Andersson

ответ

2

При выборе выпадающего списка вы не выбираете Click. вы используете ключевое слово Select From List By Label. Ниже приведен пример, в вашем случае:

Select From List By Label Xpath=ChangeMe Resource 

Это будет выбрать запись Resource внутри выпадающего меню найти - с помощью локатора по вашему выбору.

Есть много разных Select From List Ключевые слова, которые можно найти на Selenium2Library Documentation.

EDIT:

Замечая Еще один вопрос: Если вы хотите, чтобы выбрать 2-ое вхождение Xpath - просто инкапсулировать его в скобках (), добавьте префикс Xpath= и в конце добавить вхождения номера Xpath. Например:

Xpath=(//span[contains(string(), 'Submit')])[2] 

Это находит 2-й интервал, который содержит слово Submit. В моем случае это находит вторую кнопку отправки. Хотя на текущей странице 5 (в моем случае). This should help you понимать Xpaths. Это помогло мне, когда я учился!

Любые проблемы, дайте мне знать :)

0

Я недавно столкнулся с аналогичной проблемой о том, как обрабатывать выпадающие списки с помощью Robot Framework.

Смотрите этот пост: Select From List selects item but does not commit change

Akash W. общий ответ: Используйте следующие слова.

Pass локатора в качестве первого аргумента и значение в качестве еще одного аргумента

Select from list by label and validate 
    [Arguments] ${locator}  ${select value} 
    Focus ${locator} 
    # Select from list by label 
    Select From List By Label ${locator} ${select value} 
    # Get selected value and validate it against passed value as argument 
    ${value} = Get Selected List Label ${locator} 
    Should be equal ${select value} ${value} 
Смежные вопросы