繁体   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