All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.axway.ats.uiengine.elements.html.hiddenbrowser.HiddenHtmlTextArea Maven / Gradle / Ivy

/*
 * Copyright 2017 Axway Software
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.axway.ats.uiengine.elements.html.hiddenbrowser;

import org.openqa.selenium.htmlunit.HtmlUnitWebElement;

import com.axway.ats.common.PublicAtsApi;
import com.axway.ats.uiengine.UiDriver;
import com.axway.ats.uiengine.elements.UiElementProperties;
import com.axway.ats.uiengine.elements.html.HtmlElementLocatorBuilder;
import com.axway.ats.uiengine.elements.html.HtmlTextArea;
import com.axway.ats.uiengine.exceptions.VerifyEqualityException;
import com.axway.ats.uiengine.exceptions.VerifyNotEqualityException;
import com.axway.ats.uiengine.utilities.UiEngineUtilities;
import com.axway.ats.uiengine.utilities.hiddenbrowser.HiddenHtmlElementState;

/**
 * An HTML Text Area. It acts like a multiline Text Box.
 * 
Note: all values provided by user or coming from the browser are normalized by * replacing all "\r\n" with "\n" and trimming leading and trailing white spaces. * @see HiddenHtmlElement */ @PublicAtsApi public class HiddenHtmlTextArea extends HtmlTextArea { public HiddenHtmlTextArea( UiDriver uiDriver, UiElementProperties properties ) { super( uiDriver, properties ); String matchingRules[] = properties.checkTypeAndRules( this.getClass().getSimpleName(), "HiddenHtml", HiddenHtmlElement.RULES_DUMMY ); // generate the XPath of this HTML element String xpath = HtmlElementLocatorBuilder.buildXpathLocator( matchingRules, properties, new String[]{}, "textarea" ); properties.addInternalProperty( HtmlElementLocatorBuilder.PROPERTY_ELEMENT_LOCATOR, xpath ); } /** * Get the Text Area value * @return */ @Override @PublicAtsApi public String getValue() { new HiddenHtmlElementState( this ).waitToBecomeExisting(); return HiddenHtmlElementLocator.findElement( this ).getAttribute( "value" ); } /** * Set the Text Area value * * @param value */ @Override @PublicAtsApi public void setValue( String value ) { new HiddenHtmlElementState( this ).waitToBecomeExisting(); HtmlUnitWebElement element = HiddenHtmlElementLocator.findElement( this ); element.clear(); element.sendKeys( value ); UiEngineUtilities.sleep(); } /** * Append text to the current content of a Text Area * * @param value */ @Override @PublicAtsApi public void appendValue( String value ) { new HiddenHtmlElementState( this ).waitToBecomeExisting(); HtmlUnitWebElement element = HiddenHtmlElementLocator.findElement( this ); element.sendKeys( value ); UiEngineUtilities.sleep(); } /** * Verify the Text Area value is as specified * * @param expectedValue */ @Override @PublicAtsApi public void verifyValue( String expectedValue ) { expectedValue = normalizeText( expectedValue ); String actualText = getValue(); if( !actualText.equals( expectedValue ) ) { throw new VerifyEqualityException( expectedValue, actualText, this ); } } /** * Verify the Text Area value is NOT as specified * * @param notExpectedValue */ @Override @PublicAtsApi public void verifyNotValue( String notExpectedValue ) { notExpectedValue = normalizeText( notExpectedValue ); String actualText = getValue(); if( actualText.equals( notExpectedValue ) ) { throw new VerifyNotEqualityException( notExpectedValue, this ); } } private String normalizeText( String src ) { return src.replace( "\r\n", "\n" ).trim(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy