【问题标题】:Robot framework click on more objects at the same time机器人框架同时点击更多对象
【发布时间】:2017-05-27 17:12:41
【问题描述】:

我需要能够点击更多作为 SVG 图表一部分的可点击元素。

我可以单独单击任何一个栏,但我还必须选择多个栏,然后单击另一个链接,该链接将在另一个视图中打开所有选定项目的数据。

我想循环执行,比如

Press key    ${BAR ELEMENT}   CTRL

然后单击最后一个条目。但是我不断收到 Press Key 关键字的此错误:

WebDriverException: Message: unknown error: cannot focus element
(Session info: chrome=55.0.2883.87)
(Driver info: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed),platform=Windows NT 6.1.7601 SP1 x86_64)

即使我将FOCUS ${BAR ELEMENT} 放在Press key 之前,也会引发相同的错误。

点击${BAR ELEMENT} 没有问题(即使在循环中)。

另外,我什至不确定是否可以使用 CTRL(或者它可能是 CONTROL 或者我必须使用 ASCII 代码),但我想知道。只是我连这一步都达不到,请问有人有什么想法可以帮忙吗?

最好有可能独立于元素按住 CTRL 键,因为在这种情况下,将元素聚焦到按 CTRL 是没有意义的,但 Press key 不能在没有定位器的情况下使用。

我附上了一张我需要点击(蓝色)的条形图以供参考:

【问题讨论】:

    标签: python selenium automated-tests robotframework selenium2library


    【解决方案1】:

    所以我找到了解决方案:

    我准备了python函数来按住ctrl和释放ctrl

    def hold_ctrl(self):
        self.get_action_chain().key_down(Keys.LEFT_CONTROL)
        self.get_action_chain().perform()
    
    def release_ctrl(self):
        self.get_action_chain().key_up(Keys.LEFT_CONTROL)
        self.get_action_chain().perform()
    

    然后我在执行点击的循环之外使用它:

    some code before..    
    hold ctrl
        :for   ${value}   IN   @{list}
        \       wait until element is visible    ${BARS}
        \       ${bar_xpath}=   bar of specific value  ${BARS}   ${value}
        \       wait until element is visible   ${bar_xpath}
        \       click element   ${bar_xpath}
        release ctrl
        release ctrl
        ${bar_xpath}=   bar of specific value  ${BARS}   ${value} 
        click element   ${bar_xpath}
    

    唯一奇怪的是我必须使用release ctrl 两次,否则它不起作用......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-22
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 2016-04-26
      • 2015-12-05
      • 1970-01-01
      相关资源
      最近更新 更多