机器人&硒树元素扩展

时间:2016-02-11 15:42:07

标签: selenium robotframework

我的主管最近使用Selenium Webdriver将我们从HP-UFT切换到Robot并且我发现很难弄清楚如何使用驱动程序和/或关键字框架来扩展折叠树ul / li webelement。

以下是页面上代码的删除示例:

<ul>
<li class="node-class open" id="i1454430045821320">
    <a class="" style="" href="">
    <ins>&nbsp;</ins>Location Header 1</a>
    <ul>
        <li class="node-instance  leaf" id="i1454430058247421">
            <a class="" style="" href="">
            <ins>&nbsp;</ins>Location 1</a>
        </li>
        <li class="node-instance  last leaf" id="i14545337159411690">
            <a class="" style="" href="">
            <ins>&nbsp;</ins>Location 2</a>
        </li>
    </ul>
</li>
<li class="node-class  closed " id="i14544407827351156">
    <a class="" style="" href="">
    <ins>&nbsp;</ins>Location Header 2</a>
</li>

我尝试做的事情应该非常简单:我想扩展一个指定的封闭树结构,如果它被归类为已关闭。每个分支下面是可选的嵌套分支或选择复选框。我的最终目标是能够深入到测试人员指定的树中的某个位置,然后单击结束叶。

使用&#34;点击元素| xpath = / ul / li [a [包含(text(),&#39; Location Header 2&#39;)]&#34;确实扩展了分支,但它也选择了所有子节点复选框。

在UFT中,如果我遇到这种问题,我只需更改父<li>类以强制它打开(如果我无法点击或使用任何其他方法来钻取下来并选择)。

在Robot中,我可以使用关键字&#34;获取元素属性&#34;阅读课程,但我没有看到一个关键词来改变它,以便想法出来。我正在寻找的是一种扩展树枝而不会无意中选择所有子节点的方法。

一旦我弄清楚如何正确地打开节点,但是在没有选择所有子项目的情况下打开分支,我可以处理我可以处理的树部分,这让我把头撞到桌子上。

我一直在想,也许我错过了一些简单的事情。对我可以尝试的任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

想出来!非常感谢你们的想法。

Click Element At Coordinates | xpath=//ul/li[a[contains(text(),'Location Header 2')] | -100 | 0

幸运的是,页面上的所有ul元素列都具有相同的css样式,将它们设置为200px宽度。我通过反复试验来确定&#34; At Coordinates&#34;从对象中心点击选项(而不是我原先想到的左上角)。我想我会分享这个,以防其他人遇到类似的问题。