【问题标题】:Javascript offset click to the rightJavascript 偏移点击右侧
【发布时间】:2021-11-23 01:33:13
【问题描述】:

使用 RobotFramework,我需要点击右侧的“执行 Javascript”。

到目前为止,我所拥有的是:

${ele}    Get WebElement    //input[@id='halfButton']
    Execute Javascript    arguments[0].click();     ARGUMENTS    ${ele} 

如何更改它以使其点击右侧?

【问题讨论】:

  • “更多位于右侧”是什么意思?
  • 那么在我的代码中会是什么样子? javascript 不是我的菜
  • 我试过这个:EXECUTE JAVASCRIPT arguments[0].click({ button: 1, x: 1500, y: 10 }) ARGUMENTS ${ele} ...但我看不到在哪里它点击。
  • 如果您可以访问 JavaScript 执行上下文,为什么要单击任意坐标?为什么不对元素本身调用 click 函数?

标签: javascript robotframework


【解决方案1】:

没有逐行说明解决方案,这里是算法 - 当 Selenium 进行点击时,它会在对象的死点执行此操作。这就是 Tosca 挑战中的“捕获点”——他们希望你将点击定位在它的右侧——你必须计算出在哪里。

SeleniumLibrary 的救援 - get the positionthe buttonthen get its width(你需要它的四分之一,或多或少);然后做一些简单的数学运算来计算从中心向右的位置 - 和click at those coordinates

【讨论】:

    【解决方案2】:

    X横轴可以移动很多,Y纵轴不能移动很多,因为按钮不是很高。

    因此这有效:

     CLICK ELEMENT AT COORDINATES    id=halfButton    100    1
        LOG TO CONSOLE    1
    

    【讨论】:

      【解决方案3】:

      不知何故,计算似乎不起作用....

      于是我尝试了冰雹霰弹枪法:

       CLICK ELEMENT AT COORDINATES    id=halfButton    600    100
          LOG TO CONSOLE    1
          CLICK ELEMENT AT COORDINATES    id=halfButton    600    150
          LOG TO CONSOLE    2
          CLICK ELEMENT AT COORDINATES    id=halfButton    600    100
          LOG TO CONSOLE    3
          CLICK ELEMENT AT COORDINATES    id=halfButton    610    100
          LOG TO CONSOLE    4
          CLICK ELEMENT AT COORDINATES    id=halfButton    620    100
          LOG TO CONSOLE    5
          CLICK ELEMENT AT COORDINATES    id=halfButton    630    100
          LOG TO CONSOLE    6
          CLICK ELEMENT AT COORDINATES    id=halfButton    560    100
          LOG TO CONSOLE    7
          CLICK ELEMENT AT COORDINATES    id=halfButton    570    150
          LOG TO CONSOLE    8
          CLICK ELEMENT AT COORDINATES    id=halfButton    580    100
          LOG TO CONSOLE    9
          CLICK ELEMENT AT COORDINATES    id=halfButton    590    100
          LOG TO CONSOLE    10
          CLICK ELEMENT AT COORDINATES    id=halfButton    520    100
          LOG TO CONSOLE    11
          CLICK ELEMENT AT COORDINATES    id=halfButton    530    100
      

      仍然没有击中目标。

      我知道视口是:1366 x 643 (1374, 586) 超出了视口宽度 (1366) 和高度 (643) 的范围,这是由 x-700 尝试的 x y- 100.

      1. 如果它不在视口之外,我实际上会错过某种反馈“在位置 x 和 y 尝试过”。
      2. x 和 y 是从元素的中心还是从视口的左上方?
      3. 看不到点击元素的位置...我的意思是看不到任何类型的鼠标轨迹/鼠标点击位置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-05
        • 2023-04-04
        • 1970-01-01
        • 2014-07-06
        • 1970-01-01
        • 2018-07-31
        相关资源
        最近更新 更多