[英]getText() returns empty string after sendKeys()
我有一個帶有以下公共實例變量的類
@FindBy(id="titleInput")
public WebElement titleInputBox;
然后我在構造函數中使用頁面工廠在每次使用時對其進行初始化
PageFactory.initElements(driver, this);
在此頁面的測試用例中,我使用以下代碼來測試發送的文本是否確實在字段中設置了...
subtitleInputBox.sendKeys("Test");
subtitleInputBox.getText();
我得到空字符串
任何想法為什么會發生...我認為如果在沒有@FindBy
和PageFactory
情況下直接使用driver.findElement()
會PageFactory
要從諸如文本或textarea之類的輸入框中獲取文本,您需要使用getAttribute("value")
方法。 getText()
適用於div,span等標簽。
subtitleInputBox.getAttribute("value");
實際上,當您需要輸入框元素值屬性文本時, WebElement.getText()
返回此元素 (包括子元素WebElement.getText()
的可見(即未被CSS隱藏) innerText ,而沒有任何前導或尾隨空格。
FYI輸入框元素將您嘗試使用WebElement.sendKeys()
設置的文本存儲到其屬性名稱value
而不是內部文本中。
因此,您應該嘗試使用WebElement.getAttribute()
來獲取元素給定屬性的值。
在這里,您還需要實現WebDriverWait
來確定元素值是否已經使用ExpectedConditions.textToBePresentInElementValue
成功設置,如下所示:
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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.