簡體   English   中英

在 Selenium C# 中找不到元素

[英]Cannot Find Element in Selenium C#

我正在嘗試從以下網站找到一個下拉菜單按鈕:

檢查“CRO 儀表板下拉菜單”的元素片段

我的目標是找到下拉按鈕元素並單擊它以打開菜單,然后繼續對其進行其他操作。

嘗試通過 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM