我正在使用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