2016-09-04 3 views
1

私はその後、私は使用するたびにのgetText()(のSendKeysの後に空の文字列を返します)

PageFactory.initElements(driver, this); 
それを初期化するために、コンストラクタでページファクトリを使用する変数

@FindBy(id="titleInput") 
public WebElement titleInputBox; 

次のパブリックインスタンスを持つクラスを持っています

このページのテストケースでは、送信したテキストが実際にフィールドに設定されているかどうかをテストするために、次のコードを使用します...

subtitleInputBox.sendKeys("Test"); 
subtitleInputBox.getText(); 

と私はdriver.findElement()がテキストまたはテキストエリアなどの入力ボックスの外にテキストを取得するには@FindByPageFactory

答えて

0

実際WebElement.getText()はあなたしながら、任意の先頭または末尾の空白なしに、(すなわちCSSによって隠されていない)サブ要素を含め、この要素ののinnerTextを、目に見えるを返します入力ボックス要素値属性テキストが必要です。

FYI入力ボックスエレメントには、内部テキストの代わりにWebElement.sendKeys()を使用して設定しようとしているテキストが属性名valueに格納されます。

したがって、要素の指定された属性の値を取得するために使用されるWebElement.getAttribute()を試してください。ここで

あなたは要素の値が正常に以下のようにExpectedConditions.textToBePresentInElementValueを使用して設定されているか否かを判断することもWebDriverWaitを実装する必要があります -

subtitleInputBox.sendKeys("Test"); 

//Now wait until value has been set into element 
new WebDriverWait(driver, 10).until(ExpectedConditions.textToBePresentInElementValue(subtitleInputBox, "Test")); 

//Now get the element value 
subtitleInputBox.getAttribute("value"); 
2

せずに直接使用されている場合、それは正常に動作だと思う...空の文字列

にこの問題が発生した理由を任意のアイデアを得ますgetAttribute("value")メソッドを使用する必要があります。 divのようなタグのgetText()作品などにまたがるなど

subtitleInputBox.getAttribute("value");