首页 文章

如何在机器人框架中查找可见元素并执行单击操作?

提问于
浏览
-1

我有一个窗口,我有四个链接

  • 退出按钮链接 - <a id="exitBtn" class="x-btn questionpreview_exitbtn_sb x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-default-toolbar-small x-noicon x-btn-noicon x-btn-default-toolbar-small-noicon" tabindex="0" unselectable="on" hidefocus="on" style="right: auto; left: 0px; top: 0px; margin: 0px;">

  • 提交按钮链接 - <a id="submitBtn" class="x-btn questionpreview_submitbtn_sb x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-default-toolbar-small x-noicon x-btn-noicon x-btn-default-toolbar-small-noicon" tabindex="0" unselectable="on" hidefocus="on" style="right: auto; left: 864px; top: 0px; margin: 0px;">

  • 后退按钮链接 - <a id="prevBtn" class="x-btn questionpreview_backbtn_sb x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-default-toolbar-small x-noicon x-btn-noicon x-btn-default-toolbar-small-noicon" tabindex="0" unselectable="on" hidefocus="on" style="right: auto; left: 733px; top: 0px; margin: 0px; display: none;">

  • 评论按钮链接 - <a id="reviewBtn" class="x-btn questionpreview_reviewbtn_sb x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-default-toolbar-small x-noicon x-btn-noicon x-btn-default-toolbar-small-noicon" tabindex="0" unselectable="on" hidefocus="on" style="right: auto; left: 798px; top: 0px; margin: 0px; display: none;">

在这五个按钮中,只有两个按钮(退出和提交)在第一个窗口中可见 . 当我点击使用此定位器的提交按钮时:

xpath=//*[contains(text(),'Question Preview')]/ancestor::div[6]//div[@id="previewWindow-body"]//div[@id="preview-top-container"]//*[contains(text(),'Submit')]/ancestor::a`

它工作,下一个窗口打开 . 在下一个窗口中,提交按钮被隐藏,它显示退出,返回和查看按钮

它们看起来像这样

  • 退出按钮 - <a id="exitBtn" class="x-btn questionpreview_exitbtn_sb x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-default-toolbar-small x-noicon x-btn-noicon x-btn-default-toolbar-small-noicon" tabindex="0" unselectable="on" hidefocus="on" style="right: auto; left: 0px; top: 0px; margin: 0px;">

  • 后退按钮 - <a id="prevBtn" class="x-btn questionpreview_backbtn_sb x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-default-toolbar-small x-noicon x-btn-noicon x-btn-default-toolbar-small-noicon" tabindex="0" unselectable="on" hidefocus="on" style="right: auto; left: 798px; top: 0px; margin: 0px;">

  • 评论按钮 - <a id="reviewBtn" class="x-btn questionpreview_reviewbtn_sb x-unselectable x-btn-toolbar x-box-item x-toolbar-item x-btn-default-toolbar-small x-noicon x-btn-noicon x-btn-default-toolbar-small-noicon" tabindex="0" unselectable="on" hidefocus="on" style="right: auto; left: 863px; top: 0px; margin: 0px;">

我的问题是当下一个窗口打开时,我无法点击任何或找到这三个按钮中的任何一个 . 我使用xpath作为后退按钮作为 //*[contains(text(),'Back')]/ancestor::a[@id="prevBtn" and not(contains(@style,'display: none'))] 但它无法正常工作 .

1 回答

  • 0

    如果您的代码打开一个新窗口,并且您想要与该窗口进行交互,则需要调用Select Window关键字让selenium知道要查找给定元素的窗口 .

相关问题