[英]Selenium c# cannot locate element with text
I am new to Selenium in C#. 我是C#中的Selenium新手。 I tried to use
我尝试使用
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("someId")));
new SelectElement(driver.FindElement(By.Id("someId"))).SelectByText("someText");
I got error like this in my NUnit output: 我的NUnit输出中出现了这样的错误:
OpenQA.Selenium.NoSuchElementException : Cannot locate element with text: someText
OpenQA.Selenium.NoSuchElementException:无法找到带有文本的元素:someText
But when I replace wait.Unitil statement with Tread.Sleep(3000), my test could pass without error. 但是,当我用Tread.Sleep(3000)替换wait.Unitil语句时,我的测试可以顺利通过而没有错误。
Need some help. 需要一些帮助。 Please advise.
请指教。
It will work: 它将起作用:
wait.Until(d => d.FindElement(By.XPath("//*[@id='someId']//*[text()='someText']")));
new SelectElement(driver.FindElement(By.Id("someId"))).SelectByText("someText");
But will be good to refactor this into single until, something like: 但是将其重构为单个将是很好的,例如:
wait.Until(d =>
{
new SelectElement(d.FindElement(By.Id("someId"))).SelectByText("someText");
return d;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.