简体   繁体   English

Selenium C#无法找到带有文本的元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM