簡體   English   中英

如何找出為什么短暫禁用某個元素?

[英]How to find out why an element is disabled briefly?

我正在編寫自動化代碼,以單擊在chrome瀏覽器中打開的網頁上的按鈕。 事實證明,該按鈕已快速加載到DOM上,但在數毫秒內不可單擊。 在禁用時間內,它甚至沒有被GUI標記為禁用。 因此,我的自動化代碼立即找到並單擊了按鈕,但是什么也沒有發生。

一個原因可能是在禁用時間中,按鈕代碼中有一個稱為“禁用”的屬性。 我如何發現確實如此?

還有其他方法可以暫時禁用按鈕/元素嗎? 如果是,那么請告訴我哪些方法以及如何檢查使用的方法?

編輯 -根據rorys的建議,我在頁面加載時添加了代碼以打印元素html。 html中沒有禁用的屬性。 我想念什么嗎?

如果不查看代碼或預覽問題本身,很難說。

這可能是按鈕被越來越添加到DOM,但點擊事件處理程序不會立即應用,這將使它看起來禁用, 應用前。

可能是暫時有一個禁用的屬性,您可以輕松地在自動化代碼中對其進行測試; 即使它類似於console.log(element); 在控制台中查看元素的HTML。

JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement element = new WebDriverWait(driver, 30)
      .until(ExpectedConditions.elementToBeClickable(By.xpath(xpathString)));
js.executeScript("arguments[0].click()", topic);

JavascriptExecutor執行比僅使用element.click()還要好,使用WebDriverWait和condition elementToBeClickable將下一個代碼的執行延遲30秒,如上所示。

這個答案可能比問題發布的時間還早,但希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM