我必須檢查文本框是否只接受特定數量的字符。如果字符超過,它不會給出任何錯誤,但只能將文本轉成紅色。另一個文本框不接受其他字符。如何驗證文本框在兩種情況下都不會接受更多字符?如何使用Java在Selenium WebDriver中檢查元素是否可點擊
我有一個選擇,檢查頁面上可見的'保存'按鈕是否可點擊。我如何使用Java中的Selenium WebDriver執行此操作?
我必須檢查文本框是否只接受特定數量的字符。如果字符超過,它不會給出任何錯誤,但只能將文本轉成紅色。另一個文本框不接受其他字符。如何驗證文本框在兩種情況下都不會接受更多字符?如何使用Java在Selenium WebDriver中檢查元素是否可點擊
我有一個選擇,檢查頁面上可見的'保存'按鈕是否可點擊。我如何使用Java中的Selenium WebDriver執行此操作?
您可以使用isEnabled()
來檢查元件是否啓用。
driver.findElement(By.xpath("//path/to/element").isEnabled();
如果按鈕是可點擊的,這將返回true
。
如果通過點擊你的意思是沒有禁用,你可以使用WebElement.isEnabled()
。
關於不接受附加字符的文本輸入,如果您想檢測該字符,則取決於該約束如何執行。例如,如果通過maxlength attribute完成,則可以嘗試從input
元素(WebElement.getAttribute(String)
)中讀取該屬性。在這種情況下,您將事先知道可以發送多少個字符到文本框。
關於將文本轉爲紅色的文本輸入,如果您想要檢測到您應該先查明文本如何變爲紅色;可能是通過將CSS class
或style
屬性設置爲input
元素來實現的,在這種情況下,您可以嘗試從元素中讀取該屬性。
我能夠獲得maxlength屬性。感謝您的建議。但是,如何驗證文本框不接受超過maxlength的字符。當我使用driver.findelement(By.xpath(「xpath_value」))。length()時,它給我輸入字符串的總長度大於maxlength並且測試用例失敗。 – user3190414
您可能意指'driver.findElement(By.xpath(「xpath_value」))。getText()。length()'。然而,我建議讀取'maxlength'屬性的目的是,一旦你知道該值是文本框將接受的字符數量。現在我沒有測試'maxlength'屬性是否受到瀏覽器的支持,但我肯定認爲它是,這意味着我會相信,如果我讀取的「maxlength」是100,那麼文本框將不會接受超過100個字符。您是否需要測試該字段是否設置爲接受最多N個字符,或者是否確實符合該設置? – SantiBailors
只要編寫下面的方法並在每次想檢查元素是否可點擊時調用它。還要傳遞必要的參數。
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;
}
}
僅供參考,'可點擊'是指硒語言的可見性和可用性。禁用的按鈕仍然是可點擊的,因爲它將註冊鼠標點擊,即使它不會啓動任何操作。如答案所示,您的問題實際上是否啓用了已知的現有和可見元素。你的問題仍然是可以理解和有效的,這些定義只會幫助你在未來尋找相當簡單的答案:) – KjetilNordin