我的標籤文本已從MQL
更改爲SQL
值。Selenium方法WaitUntilTextToBePreInInElement失敗
<label for="stage_label" id="Stage_label"><div class="ms-crm-div-NotVisible">Stage SQL</div>SQL<div class="ms-crm-Inline-GradientMask"></div></label>
我需要等到標籤包含'SQL'值。
如果我使用Selenium本地wait方法我的測試在30秒內未能與TimedoutException
var wait = new WebDriverWait(driver, TimeSpan.FromMilliseconds(30000));
wait.Until(ExpectedConditions.TextToBePresentInElement(driver.FindElement(
By.Id("Stage_label")), "SQL"));
與此同時,如果我嘗試調試和檢查元素文本它成功返回SQL等待
一段時間後, for (int i = 0; i < 5; i++)
{
Console.WriteLine(driver.FindElement(
By.Id("Stage_label")).Text);
Thread.Sleep(100);
}
MQL MQL MQL SQL SQL
爲什麼硒方法不會在這種情況下工作嗎?
你是什麼意思?它會拋出'NoSuchElementException'或'TimedoutException'嗎? –
它引發「30秒後超時」異常 – algot
整個元素是否可能被銷燬和重新創建?通過你的測試,添加一個變量來獲取循環前的元素,只需抓取文本,而不是每次都獲取新的元素。這將告訴你,如果你得到一個新的元素或不。 – CodingKuma