2015-07-17 6 views
0

Если у меня есть страница с списком элементов, мне нужно найти один конкретный элемент и нажать кнопку его действий. Каждый элемент в списке будет иметь свою кнопку действий. Я мог написать, чтобы найти конкретный элемент, но мне не удается найти его соответствующую кнопку действий. Так, например, страницы списка будет, как показано ниже, и я должен нажать кнопку действий Test2найти, если элемент существует, а затем нажать на соответствующую кнопку

Test1 - Действие
test2 - Действие
TEST3 - Действие

Текст кнопки (действие) является общим для каждая кнопка. Также я не хочу использовать xpath или его номер, поскольку он может измениться, если список растет, и каждый раз, когда я хочу, чтобы нажимал на кнопку Action того же элемента. Можно ли каким-то образом использовать «if else» и найти имя, а затем нажать кнопку действия? ТИА.

ответ

0

Вы можете проверить текст вашего TDs, сравнить его с желаемым, получить TR родительский и найти кнопку действия. Вы можете сделать это с использованием чистого XPath (это не самый лучший способ) или с использованием языка, который вы работаете с Selenium.

Как пример, в C#:

Browser.FindElements(By.TagName("tr")) 
    .First(x => x.Text.Contains("my text to compare")) 
    .FindElement(By.TagName("input")) 
    .Click(); 

Он будет искать во всех «тр» помечает тот, который содержит текст «мой текст для сравнения», и он выбирает только первый результат, который соответствует, и после того, как выберет входной тег внутри него. Конечно, вы можете изменить имена тегов или селекторы, необходимо адаптировать код с необходимостью

То же самое можно сделать с помощью чистого XPath селектор:

$x("//td[contains(text(), 'my text to compare')]/..") 

Он будет принимать тд, который содержит требуемый текст и получить родительский tr. Подтвердите, что вы можете перейти к нужному тегу и выбрать кнопку действия.

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