2016-11-14 31 views
1

我正在測試文本框和按鈕 - 用戶在某些信息中鍵入文本框,然後點擊按鈕 - 該按鈕將文本從「更新」更改爲「更新」,然後操作完成後返回「更新」。等待在Selenium Webdriver中更改按鈕狀態

我希望Selenium等到按鈕返回到「更新」後再繼續。

使用XPath這裏

我已經嘗試了不同的解決方案是我現在所在:

self.wait.until(EC.element_to_be_clickable(By.XPATH, '//button[@id="send_data"][text()="Update"]')) 

按鈕的HTML如下:

<button id="send_data" type="button" class="btn btn-success" onclick="ChangeParam(this,'radio','freq'; return false;">Update</button> 

<button id="send_data" type="button" class="btn btn-default" onclick="ChangeParam(this,'radio','freq'; return false;">Updating</button> 

在哪裏我錯了嗎?

回答

0

這是很常見的問題:你應該送type_of_locator, "locator_string"作爲參數((By.XPATH, "//button"))元組,但不能作爲兩個獨立的ARGS (By.XPATH, "//button")

使用下面的代碼

self.wait.until(EC.element_to_be_clickable((By.XPATH,'//button[@id="send_data"][text()="Update"]'))) 
+0

謝謝,硒現在正在等待,但它不」 t似乎正在等待,因爲它運行完整的默認10秒,而按鈕在大約0.3秒後返回到「更新」。 – Sithling

+0

你有沒有'TimeOutException'?同時顯示什麼是'wait' – Andersson

+0

等待在我的setUpClass類方法中定義爲'cls.wait = WebDriverWait(cls.driver,10)' – Sithling