Selenium c# 无法定位带有文本的元素

Selenium c# cannot locate element with text

我是 C# 中的 Selenium 新手。我尝试使用

wait.Until(ExpectedConditions.ElementIsVisible(By.Id("someId")));
new SelectElement(driver.FindElement(By.Id("someId"))).SelectByText("someText");

我的 NUnit 输出中出现这样的错误:

OpenQA.Selenium.NoSuchElementException : Cannot locate element with text: someText

但是当我用 Tread.Sleep(3000) 替换 wait.Unitil 语句时,我的测试可以顺利通过。

需要一些帮助。请指教

它将起作用:

wait.Until(d => d.FindElement(By.XPath("//*[@id='someId']//*[text()='someText']")));
new SelectElement(driver.FindElement(By.Id("someId"))).SelectByText("someText");

但最好将其重构为单个,直到:

wait.Until(d =>
{
new SelectElement(d.FindElement(By.Id("someId"))).SelectByText("someText");
return d;
});