2017-02-17 43 views
0

我必須檢查文本框是否只接受特定數量的字符。如果字符超過,它不會給出任何錯誤,但只能將文本轉成紅色。另一個文本框不接受其他字符。如何驗證文本框在兩種情況下都不會接受更多字符?如何使用Java在Selenium WebDriver中檢查元素是否可點擊

我有一個選擇,檢查頁面上可見的'保存'按鈕是否可點擊。我如何使用Java中的Selenium WebDriver執行此操作?

+0

僅供參考,'可點擊'是指硒語言的可見性和可用性。禁用的按鈕仍然是可點擊的,因爲它將註冊鼠標點擊,即使它不會啓動任何操作。如答案所示,您的問題實際上是否啓用了已知的現有和可見元素。你的問題仍然是可以理解和有效的,這些定義只會幫助你在未來尋找相當簡單的答案:) – KjetilNordin

回答

0

您可以使用isEnabled()來檢查元件是否啓用。

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

如果按鈕是可點擊的,這將返回true

0

如果通過點擊你的意思是沒有禁用,你可以使用WebElement.isEnabled()

關於不接受附加字符的文本輸入,如果您想檢測該字符,則取決於該約束如何執行。例如,如果通過maxlength attribute完成,則可以嘗試從input元素(WebElement.getAttribute(String))中讀取該屬性。在這種情況下,您將事先知道可以發送多少個字符到文本框。

關於將文本轉爲紅色的文本輸入,如果您想要檢測到您應該先查明文本如何變爲紅色;可能是通過將CSS classstyle屬性設置爲input元素來實現的,在這種情況下,您可以嘗試從元素中讀取該屬性。

+0

我能夠獲得maxlength屬性。感謝您的建議。但是,如何驗證文本框不接受超過maxlength的字符。當我使用driver.findelement(By.xpath(「xpath_value」))。length()時,它給我輸入字符串的總長度大於maxlength並且測試用例失敗。 – 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; 
     } 
    } 
相關問題