我需要浏览菜单并选择一个子菜单。使用Robot Framework选择子菜单
我使用点击元素的XPath如下:
//*[@id="gomenu68e1884541"]//nav/div/ul/li[3]/div/ul/li[2]/a
但它并不能帮助我,因为id
是dynamic
和变化,每一次,当我访问应用程序
我怎样才能浏览一个菜单 - >子菜单?
欲了解更多详情,请参考下面提到的图片。
谁能帮助?
我需要浏览菜单并选择一个子菜单。使用Robot Framework选择子菜单
我使用点击元素的XPath如下:
//*[@id="gomenu68e1884541"]//nav/div/ul/li[3]/div/ul/li[2]/a
但它并不能帮助我,因为id
是dynamic
和变化,每一次,当我访问应用程序
我怎样才能浏览一个菜单 - >子菜单?
欲了解更多详情,请参考下面提到的图片。
谁能帮助?
我对Xpath有同样的问题。 js
,迷惑angular
等基于网站,这是生成的内容dinamically根本不工作。我花了很多时间在我以前的自动化项目上,为此找到了一个解决方案:构建自己的xpath。不仅意味着Insect Element
在Chrome
和其他浏览器中,你必须自己构建它们,同时学习代码和网站的工作方式。这个方法应该遵循:
xpath
你必须找出你如何能达到想要的元素,而不使用@id
s。使用css classes
这是很少随机改变,并找出你的元素之间的关系。您必须使用following-sibling
和text()
以及其他不太知名的xpath选择器。我会建议你this 熟悉xpath
。对我来说没有任何其他的方式,但最终我有一个了不起的,格式良好的变量文件,包含了所有元素的xpath。
必须同意,除此之外别无他法,只能去学习。 Xpath是其他任何语言的子集,甚至非常简单直接,我们在selenium/webdriver中使用的是大多数情况下的基本集合。我无法想象在没有编程语言知识的情况下编程。 w3c是明确的资源,但是也可以从w3school教程开始。对于上帝的爱,千万不要使用浏览器性别化的xpath/css :) – Todor
在这种情况下,菜单项(li
元素)是具有特定类别的div
的孙子,以及ul
的子元素。如果你的a
后去的XPath的是:
//div[@class="menuslide”]/ul/li/a[@title="Alumnos"]
如果目标元素应该是li
,您可以使用此XPath - 它选择li
具有带标题的孩子:
//div[@class="menuslide”]/ul/li[a[@title="Alumnos"]]
如果你想它的任何未来的变化较为强劲,但速度较慢一点点,你可以跳过ul
和div
之间的父子关系,以及它和li
,并使其只是“找我有一个li
元素祖先与类“一div
:
//div[@class="menuslide”]//li/a[@title="Alumnos"]
而这个创造的XPath的一般模式 - 你会发现一个共同的属性模式,将留(类和标题属性),而只会查明评估路径具体元素,考虑到评估速度和鲁棒性之间的权衡(速度是一个问题与现代浏览器和硬件的更少)
我终于得到它的工作(甚至在第三级菜单的)使用这些命令:
Wait Until Page Contains Element
Sleep
Mouse Over
Click Link
而且不同的XPath的混合:
xpath=//*[@class="dropdown"]//a[contains(., 'Alumnos')]
xpath=//*[@class="dropdown"]/li[3]/div/ul/li[1]/div/ul/li[1]/a
谢谢大家对你的帮助
你能张贴您的资产净值的HTML? – Goralight
>如何浏览菜单>子菜单?通过不使用动态ID-S,直接派生路径和索引元素:)。即不要拿什么xpath浏览器为你生成:)在问题中提供html源代码,或者链接到公开可见的系统,我们会帮助你。 – Todor