2014-07-07 46 views
1

我用java的硒webdriver寫腳本。但是,點擊按鈕後,我們幾乎沒有被禁用的字段。我們需要找到這個領域正在獲取只讀模式或不。我使用isEnabledisDisplayed,但它不起作用,系統顯示NoSuchElementFound預期。有什麼辦法可以解決這個問題嗎?如何找到輸入字段是隻讀或不使用硒webdriver與java

+0

在單擊按鈕之前和之後共享禁用字段的HTML代碼段。 – HemaSundar

回答

1

您可以執行以下步驟。 1.在執行檢查之前,使用WebDriverWait等待語句確保元素確實存在。 2.瀏覽HTML腳本並檢查導致HTML元素只讀的屬性。在我使用該屬性的應用程序中is'disabled'。當屬性'disabled'的值爲TRUE時,該元素被禁用。對你而言,它可能是一個不同的屬性。然後獲取這個屬性的值,你會發現元素是啓用還是禁用。 (driver.findElement(By.xpath(txt_Username))。getAttribute(「disabled」));

1

使用JavaScript,你可以得到這樣的屬性值 -

var isReadOnly = document.getElementById("field").readOnly; 
alert(isReadOnly); //displays true OR false 

請檢查瀏覽器的兼容性此屬性。 :-)

+0

感謝您的輸入,但它不適用於我的應用程序。 –

0
Below given code is working with my application. 

public boolean runScript(String str){ 
     String script ="if($("+'"'+"#City"+'"'+").attr("+'"'+str+'"'+")){return true}else{return false}"; 
     System.out.println(script); 
     JavascriptExecutor js = (JavascriptExecutor) driver; 
     return (Boolean) js.executeScript(script); 
     } 

int k=0; 
     do{ 
      if(!runScript("HouseNo")){ 
       System.out.println("Field is in readonly mode"); 
       break; 
      } 
      Thread.sleep(1000); 
     }while(k<60); 
2

你可以做到這一點,而無需執行JS,所有你需要做的是讓這是「只讀」可以做到這一點使用元素的DOM屬性:

WebElement readOnly = driver.findElementBy(locator); 
    Assert.assertTrue(readOnly.getAttribute("readOnly").equals("true"),"Element ReadOnly") 

希望這會有所幫助....

相關問題