[英]Cannot Find Element in Selenium C#
我正在嘗試從以下網站找到一個下拉菜單按鈕:
我的目標是找到下拉按鈕元素並單擊它以打開菜單,然后繼續對其進行其他操作。
嘗試通過 id 定位下拉菜單按鈕時出現以下錯誤:
OpenQA.Selenium.NoSuchElementException: '沒有這樣的元素:無法找到元素:{"method":"css selector","selector":"#dashboardSelectorLink"}
參考圖像,從突出顯示的部分中,我嘗試使用各種定位器,例如通過id查找元素、 css 選擇器、 class 名稱,甚至 xpath 名稱,甚至xpath程序都無法找到它,但程序仍然無法單擊該元素。
這是我嘗試的一些代碼:
dropdown = FindElementByCSS(dropdown, ".ms-crm-ImageStrip-Dropdown_Arrow");
dropdown = FindElementByXPath(dropdown, "//a[@id='dashboardSelectorLink']/span[2]/img");
dropdown = driver.FindElement(By.CssSelector("a[id=\"dashboardSelectorLink\"]"));
dropdown = FindElementByID(dropdown, "dashboardSelectorLink");
dropdown = FindElementByXPath(dropdown, "//cssclass[@id='dashboardSelectorLink']");
dropdown = FindElementByCSS(dropdown, "cssclass[id = 'dashboardSelectorLink']");
dropdown = FindElementByID(dropdown, "dashboardSelectorLink");
dropdown = FindElementByClass(dropdown, "cssclass[id= 'dashboardSelectorLink']");
dropdown = FindElementByID(dropdown, "dashboardSelectorContainer");
變量“下拉”是IWebElement類型,我正在使用 Selenium C# 的chrome 驅動程序。
對於上下文,代碼在以下 function 中:
public void EnterDashboardArea()
{
IWebElement navbtn = null;
IWebElement category = null;
IWebElement dropdown = null;
navbtn = FindElementByID(navbtn, "Tab1");
ClickElement(navbtn);
category = FindElementByID(category, "MNG");
ClickElement(category);
Thread.Sleep(5000); //pausing the program so the page fully loads and all elements appear
dropdown = driver.FindElement(By.CssSelector("img[class='ms-crm-ImageStrip-Dropdown_Arrow']"));
ClickElement(dropdown);
}
在 function EnterDashboardArea()中,web 元素最初設置為none ,然后在返回元素值時由函數“FindElementByX”填充。
'FindElementByX' 函數是我自己創建的,例如:
public IWebElement FindElementByID(IWebElement ele, string id) {
ele = driver.FindElement(By.Id(id));
return ele;
}
我什至嘗試安裝 selenium chrome 擴展以准確定位目標,但仍然沒有成功。
請問我能做什么? - 謝謝
可能是您試圖在元素加載到 DOM 之前檢索該元素嗎? 嘗試在讀取元素之前設置超時。
另外:在您打開之前,該元素是否包含在最初隱藏的容器中? 在嘗試讀取元素之前,您可能必須單擊一些顯示容器和目標元素的按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.