我正在使用Selenium WebDriver并编写了一个小代码来查找和元素(即按钮)并单击它。 这里是按钮的HTML代码:无法在Selenium WebDriver中按名称和XPath查找元素
<input type="submit" name="j_id0:j_id2:j_id3:j_id4:j_id7" value="New Master Health Program" onclick="AddLink()" class="btn">
下面是测试案例的C#代码:
IWebElement newMasterHealthProgramsLink = driver.FindElement(By.Name("j_id0:j_id2:j_id3:j_id4:j_id7"));
newMasterHealthProgramsLink.Click();
我试图使用XPath和:
IWebElement newMasterHealthProgramsLink = driver.FindElement(By.XPath("//input[@id='j_id0:j_id2:j_id3:j_id4:j_id5']"));
newMasterHealthProgramsLink.Click();
我发现一个解决方案说,你一定没有实现等待这个。页面不会等待完全加载并尝试查找元素。所以我添加了等待命令但没有发生任何有用的事仍然收到相同的错误:
TestAutomation.Driver.Login:
OpenQA.Selenium.NoSuchElementException : The element could not be found
它是否在iFrame中?你尝试完全绕过名称,并使用XPath:'//输入[@值='新的硕士健康计划']'? – Arran
是在iFrame中。而这个XPath也不起作用。 – asma
然后,您需要使用'SwitchTo.Frame(“iframeID”)'将焦点切换到该iFrame。 Selenium会查询顶部框架,除非您另行说明,否则将无法找到子框架中的任何内容。 – Arran