2016-09-24 33 views
0

Selenium在單擊禁用按鈕時沒有發生錯誤。我試圖點擊第一次點擊後被禁用的BUTTON元素。即使元素被禁用,selenium click()方法也能正常工作

場景:我試圖單擊以及獲取禁用的元素的文本,並在第一次單擊後更改其文本。

WebElement Button = driver.findElement(By.id("xyz")); 
String ValueB4click = Button.getAttribute("value"); 
System.out.println("value = " + ValueB4click); 
Button.click(); 
System.out.println("Button got disabled"); 
System.out.println("Hitting button 2nd time"); 
Button.click(); //----> this line should give error as button got disabled for 30 seconds after 1st click. 
System.out.println("value of button after click"); 

String Valueafterclick = Button.getAttribute("value"); 
System.out.println("value = " + Valueafterclick); 

步驟如下:

  1. 值=創建PDF
  2. 按鍵得到了禁用
  3. 擊中按鈕第二次按鈕
  4. 值點擊
  5. 值後=創建PDF ...

而不是直到第3行然後再例外匯總。

+0

我正在使用禁用 .disabled = true或false在Javascript – Vivek

回答

0

不是簡短的答案。硒本質上充當虛擬鍵盤&。你只能使用它通常在控制檯上執行的操作,所以只需簡單地點擊一個禁用的元素就不會執行任何操作。您必須以某種方式進入頁面的HTML/JavaScript本身,並重新啓用按鈕以使Selenium發生任何事情。

0

硒不會點擊禁用BUTTON。我想我會認爲它會拋出像你一樣的異常,但我現在無法測試。你可以做的是檢查BUTTON,看它是否在第一次點擊後被禁用。

WebElement Button = driver.findElement(By.id("xyz")); 
System.out.println("Value of button before click: " + Button.getAttribute("value")); 
Button.click(); 
System.out.println("Button is disabled: " + Button.isDisabled()); 
System.out.println("Value of button after click: " + Button.getAttribute("value")); 
+0

謝謝JeffC webelement但我更感興趣的是捕獲異常硒應該扔了....按鈕得到禁止,但點擊()方法沒有給任何異常 – Vivek

+0

@Vivek實際上你試圖驗證已經啓用的緩存元素的殘疾,你需要刷新相同的元素,然後你會發現它會拋出異常。所以你應該嘗試'driver.findElement(By.id(「xyz」))。click(); driver.findElement(By.id(「xyz」))。click();' –

+0

@SaurabhGaur元素不是緩存。它們只是對元素的引用。自己測試一下。 – JeffC

相關問題