如何在不提及单个选项卡的xpath的情况下自动识别选项卡

如何在不提及单个选项卡的xpath的情况下自动识别选项卡,xpath,robotframework,Xpath,Robotframework,[![enter image description here][1][1]我有主选项卡库,在库中还有两个选项卡Communication,Innovation,截至目前,我已经编写了一个脚本来分别标识每个选项卡,但我想编写一个脚本,以便它自己标识脚本。这是我的代码: Wait Until Page Contains Element xpath=.//*[text()='LIBRARIES'] Click Element xpath=.//*[text()='LIBRAR

[![enter image description here][1][1]我有主选项卡库,在库中还有两个选项卡Communication,Innovation,截至目前,我已经编写了一个脚本来分别标识每个选项卡,但我想编写一个脚本,以便它自己标识脚本。这是我的代码:

 Wait Until Page Contains Element    xpath=.//*[text()='LIBRARIES']
    Click Element     xpath=.//*[text()='LIBRARIES']
    Wait Until Page Contains Element    xpath=.//*[contains(text(),'Communication')]
    Click Element    xpath=.//*[contains(text(),'Communication')]
    Wait Until Page Contains Element    xpath=.//*[text()='Sisterhood of Motherhood']
    Click Element   xpath=.//*[text()='Sisterhood of Motherhood']
    Click Image    xpath=.//img[@ src='pmm/skinnedImage/abbott/close/skinned-image.png']

是的,这是绝对可能的。我过去所做的是:

  • 找到它们的父元素;让我们称之为parentElement
  • 这些选项卡必须共享一些类似的属性,比如类名,找出那些常见的类名,比如它们都被称为“class='x-container'”
  • 查找parentElement下共享相同属性的所有元素(在本例中为类名),使用方法通过\u css\u选择器(“div[class='x-container'])查找\u元素要查找parentElement下的所有选项卡,它们将在列表中返回给您
  • 使用“for”循环一次遍历这个列表中的一个元素,这样,您就可以访问所有选项卡,而无需显式地命名每个选项卡
  • 但robot框架并没有一个关键字,允许您定位作为公共parentElement子元素的元素
  • 所以你必须从低级创建你自己的关键字
  • 如果您更喜欢Xpath而不是CSS选择器,则可以使用Xpath。我使用Python作为上面的示例。
    希望有帮助。

    您能扩展吗?基本上你已经按照你想要的方式工作了,但是你想让它变得通用,这样它就可以应用到其他地方,我猜?作为补充,如果这是一项常规活动,我建议您与开发人员一起构建有意义的标识符是的,上面的脚本运行良好,但我正在为每个选项卡提供xpath,但现在我希望脚本自动识别选项卡本身并单击并验证。我不确定我需要如何在pycharm中编写脚本,因为我对pycharm非常陌生,您希望我做什么扩展?孩子的数量总是相同还是不同?它会是动态的吗?或者这是这个问题需要解决的唯一地方?一些简短的建议,与开发人员一起为这些定义有意义的ID/类。我想您可以在xpath库下面计算某个类/id的div元素。它们确实不同,是的,它们是动态的。我应该如何使用devs?非常感谢您的评论!