0
我工作的一些硒的Java代碼,我執行使用executeScript JavaScript代碼如下:JavaScript的點擊,如果點擊返回true,如果不是假的
WebElement menu = driver.findElement(By.cssSelector(string1));
((JavascriptExecutor) driver).executeScript("arguments[0].click();", menu);
我希望能夠做的是檢測如果該元素可以被點擊,如果該按鈕被禁用,那麼點擊事件不會觸發,所以我需要一個標誌。 JS的問題是點擊事件返回undefined。
所以我需要一個標誌,我executeScript內部,例如:
Object flag_to_stop = ((JavascriptExecutor) driver).executeScript("<<something here if returns true string else returns false string>>, menu);
while (Object.toString.equals(<<true string>>))
然後我可以執行while循環,如果flag_to_stop是假的,我可以打破;
任何建議傢伙?
這主要是一個JavaScript問題,所有的Java代碼都已經提供。
我認爲,一個未定義的錯誤意味着您正試圖調用還沒有被創建的對象的事件。因此,在運行腳本之前確定它是否真的存在將是一個好的開始。 – Icewine
點擊['WebElement.isEnabled()'](https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebElement.html)可以檢查元素是否已啓用#isEnabled--) –
myButton的= driver.find_element_by_id( 「buttonId」) 如果myButton.is_enabled(): myButton.click() 這應該做到這一點,在那裏你正在使用的JavascriptExecutor,你可以在任何特定的原因使用硒來做同樣的事情。 –