Selenium: обработка нескольких входов с одинаковым xpath - PullRequest
1 голос
/ 25 ноября 2011

Я тестирую веб-сайт, где у пользователя есть возможность изменить поля ввода на Textbox и Dropdown. Независимо от того, изменяет ли пользователь его в раскрывающемся или текстовом поле, xpath для поля ввода одинаков. Итак, я не уверен, как написать шаги теста для этой ситуации.

Я бы хотел сделать что-то вроде:

if (dropdown present)
{
   Selenium.Select("dropdown xpath", "option");
}

else if (textbox present)
{
   Selenium.Type("texbox xpath", "option");
}

Может кто-нибудь помочь мне? Есть ли способ в Selenium проверить, имеет ли тип ввода «текст»?

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Я не увидел простого свойства в селене, но вы определенно можете получить его, вызвав javascript:

IWebElement element = ...

string tagName = ((IJavaScriptExecutor) webDriver) .ExecuteScript («возвращать аргументы [0] .tagName», элемент) .ToString ();

Другая альтернатива - создать 2 xpath, которые будут работать только для одного или другого, и попытаться найти текстовое поле в пределах try / catch. Если он попадет в ловушку, найдите вместо этого выпадающий список.

1 голос
/ 29 ноября 2011

Вы можете использовать selenium.isElementPresent(locator), вложенную в вашу конструкцию if (..), чтобы проверить наличие элемента и выполнить соответствующие операции.

...