如何找到随机ID,XPATH和CSSpath的选择器,我正在使用Selenium c#测试CMS工具



问题:嗨,伙计们,我正在使用selenium c#测试CMS工具,但问题是为一个小的下拉按钮找到一个选择器,因为随机ID(所有选择器)。虽然它正在生成HTML代码,但我不能采取它的帮助,因为下次脚本运行时,它会改变id(类名和所有其他标识符)。

尝试:我尝试将页面上所有下拉按钮的xpath存储在数组中,下次单击元素的数组位置时,但它没有将任何元素xpath存储在数组中。

请建议我能做什么在这种情况下,可能是Java脚本启用页面的情况下。

元素代码:
<span class="epi-extraIcon epi-pt-contextMenu epi-iconContextMenu" role="presentation" title="Display menu" data-dojo-attach-point="iconNodeMenu" _dijitmenuuniqname_51_43="1"/>

最近我在c#中使用了selenium,并且遇到了一些类似的问题。

我的解决方案是使用XPath。

我检查了使用firebug(在Mozilla Firefox上)获取Xpath所需的元素。

之后,我使用HtmlAgilityPack nuget来加载页面源并选择节点,然后我就可以获得元素了。

我还禁用了页面的JQuery动画,以避免一些问题。

所以,我选择节点的代码是这样的:
var document = new HtmlDocument();
            document.LoadHtml(pageSource);
            var htmlLoaded = DocumentParsing(document.DocumentNode.SelectNodes(
                "/html/body/table[2]/tbody/tr/td/table[2]/tbody/tr/td[1]/font[2]/b[1] |" +
                "/html/body/table[2]/tbody/tr/td/table[2]/tbody/tr/td[1]/font[2]/b[2]));

和我的代码禁用JQuery动画:

 try
            {
                var js = DriverService as IJavaScriptExecutor;
                js.ExecuteScript("$.fx.off = !$.fx.off;");
                return true;
            }
            catch (Exception)
            {
                return false;
            }

希望对你有帮助。

最新更新