Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何找到随机ID、XPATH和;CSSpath,I';m使用Selenium c测试CMS工具#_Javascript_C#_Selenium_Automation_Selenium Rc - Fatal编程技术网

Javascript 如何找到随机ID、XPATH和;CSSpath,I';m使用Selenium c测试CMS工具#

Javascript 如何找到随机ID、XPATH和;CSSpath,I';m使用Selenium c测试CMS工具#,javascript,c#,selenium,automation,selenium-rc,Javascript,C#,Selenium,Automation,Selenium Rc,问题:大家好,我正在测试一个使用selenium c#的CMS工具,但问题是因为随机ID(所有选择器)而为一个小下拉按钮找到一个选择器。虽然它正在生成HTML代码,但我不能接受它的帮助,因为下次脚本运行时,它会更改ID(类名和所有其他标识符) 尝试:我尝试在数组中存储页面上所有下拉按钮的xpath,下次单击元素的数组位置时,它没有在数组中存储任何元素xpath 请建议我在这种情况下可以做什么,可能是启用java脚本的页面 元素的HTML代码: <span class="epi-extraI

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

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

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

元素的HTML代码:

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

希望有帮助。

HTML代码:角色或标题属性是否稳定?如果它们是的话,你可以使用它们。嗨,杰夫,是的,这些属性是稳定的,但是有多个组件具有相同的属性。即使我也找不到任何独特的组合。谢谢费尔南多,我会尝试解决方案并更新进度。