2017-02-17 8 views
0

Я должен проверить, что текстовое поле принимает только определенное количество символов. Если символы превышают, это не дает никакой ошибки, а только краснет текст. Другое текстовое поле просто не принимает дополнительных символов. Как проверить, что текстовое поле не принимает больше символов в обоих случаях?Как проверить, доступен ли элемент в Selenium WebDriver с помощью Java

Один из вариантов, который у меня есть, проверьте, доступна ли кнопка «Сохранить», которая видна на странице. Как это сделать с помощью Selenium WebDriver в Java?

+0

Только для вашей информации «clickable» относится к видимости и доступности на языке селена. Отключенная кнопка по-прежнему будет доступна для кликов, в том смысле, что она зарегистрирует щелчок мыши, даже если она не начнет никаких действий. Как показывают ответы, ваш вопрос действительно о том, включен ли известный существующий и видимый элемент. Ваш вопрос по-прежнему понятен и действителен, эти определения просто помогут вам искать довольно простые ответы самостоятельно, в будущем :) – KjetilNordin

ответ

0

Вы можете использовать isEnabled(), чтобы проверить, включен ли элемент.

driver.findElement(By.xpath("//path/to/element").isEnabled(); 

Это вернет true, если кнопка нажата.

0

Если по кликабельному вы имеете в виду не отключен, вы можете использовать WebElement.isEnabled().

О текстовом вводе, который не принимает дополнительные символы, если вы хотите определить это, это зависит от того, как это ограничение выполняется. Например, если это делается через maxlength attribute, вы можете попробовать прочитать этот атрибут из своего input элемента (WebElement.getAttribute(String)). В этом случае вы заранее знаете, сколько символов вы можете отправить в текстовое поле.

О текстовом вводе, который превращает текст в красный, если вы хотите обнаружить, что сначала вы должны узнать, как текст повернут на красный; вероятно, это делается путем установки атрибута CSS class или style в ваш элемент input, и в этом случае вы можете попробовать прочитать этот атрибут из этого элемента.

+0

Мне удалось получить атрибут maxlength. Спасибо за предложение. Но как проверить, что текстовое поле не принимает символы больше, чем maxlength. Когда я использую driver.findelement (By.xpath ("xpath_value")). Length(), он дает мне полную длину входной строки, которая больше максимальной длины, и тестовый пример терпит неудачу. – user3190414

+0

Вероятно, вы имеете в виду 'driver.findElement (By.xpath (" xpath_value ")). GetText(). Length()'. Однако целью моего предложения прочитать атрибут 'maxlength' было то, что, как только вы узнаете это значение, количество символов, которое будет принимать текстовое поле. Теперь я не тестировал, соблюдается ли атрибут 'maxlength' браузерами, но я определенно предполагаю, что это так, что означает, что я бы верил, что если' maxlength', который я читаю, равно 100, тогда текстовое поле не будет принимать более 100 символов. Вам нужно проверить, что в поле установлено максимальное количество символов N или что он действительно соблюдает этот параметр? – SantiBailors

1

Просто напишите метод ниже и вызовите его, когда хотите проверить, является ли элемент интерактивным или нет. Передайте также необходимые аргументы.

public static boolean isClickable(WebElement el, WebDriver driver) 
    { 
     try{ 
      WebDriverWait wait = new WebDriverWait(driver, 6); 
      wait.until(ExpectedConditions.elementToBeClickable(el)); 
      return true; 
     } 
     catch (Exception e){ 
      return false; 
     } 
    }