在Selenium C#中找不到元素



我正试图从以下网站找到一个下拉菜单按钮:

检查"CRO Dashboard DropDown Menu"的元素片段

我的目标是找到下拉按钮元素,点击它打开菜单,然后继续对它进行其他操作

当尝试通过id:定位下拉菜单按钮时,出现以下错误

OpenQA。硒。NoSuchElementException:"没有这样的元素:无法定位元素:{"方法":"css选择器","选择器":"#dashboardSelectorLink"}

参考图像,从突出显示的部分,我尝试使用各种定位器,如通过id查找元素、css选择器类名,甚至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驱动程序

对于上下文,代码位于以下函数中:

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);
}

在函数EnterDashboardArea((中,web元素最初设置为none,然后在返回元素值时由函数"FindElementByX"填充。

函数"FindElementByX"是我自己创建的,例如:

public IWebElement FindElementByID(IWebElement ele, string id) {
ele = driver.FindElement(By.Id(id));
return ele;
}

为了准确定位目标,我甚至尝试安装硒铬扩展,但仍然没有成功。

我能做什么?-感谢

可能是您试图在元素加载到DOM之前检索该元素吗?请尝试在读取元素之前设置超时。

此外:元素是否包含在打开之前最初隐藏的容器中?在尝试读取元素之前,您可能必须单击一些显示容器和其中的目标元素的按钮。

相关内容

  • 没有找到相关文章

最新更新