代码之家  ›  专栏  ›  技术社区  ›  Evernoob

硒不注册按钮按下

  •  2
  • Evernoob  · 技术社区  · 16 年前

    在我的一个Ajax页面上运行SeleniumIDE时出现问题。有一个带有javascript onclick submit的HTML按钮,一旦单击该按钮,就会出现一个新的表单元素。在先前显示的下拉列表中选择了一个选择值后,该按钮也只会通过Ajax显示。

    Selenium看到按钮出现并认为它点击了它,但是点击实际上不起作用。

    我暂时无法访问源代码,原因是我无法进入。我知道我可能有点含糊不清…我会尽我所能发布更多细节。

    干杯

    编辑:为了澄清,我在按钮上使用了waitforvisible命令,该命令通过,然后单击,该命令也通过,但是它会停留在下一个元素上,该元素从下拉框中进行选择。Selenium认为这是在做,但不是:(

    3 回复  |  直到 13 年前
        1
  •  0
  •   austin cheney    16 年前

    如果简单地不记录按钮的单击,则必须进入代码中手动写入该步骤,同时指定正确的xpath表达式或dom路径。Selenium可以自动生成不正确的DOM路径,但唯一可以确定的方法是查看代码。

    最可能的答案是时间问题。Selenium触发步骤的速度比DOM能够呈现更改的速度快,这会导致错误。您可能希望在生成按钮和单击按钮之间直接指定两秒钟的暂停。

    如果问题不一样,你必须更具体一些。

        2
  •  1
  •   Santi    16 年前

    有时候,根据页面中触发事件的方式,Selenium的点击不起作用。 这可能是因为真正的onclick稍后会在其他地方被指定为javascript(即使HTML告诉您它有一个“onclick”操作)。

    尝试用mousedown和mouseup逐个替换click操作,使用定位器作为参数:

    <tr>
        <td>mouseDown</td>
        <td>button_id</td>
        <td></td>
    </tr>
    <tr>
        <td>mouseUp</td>
        <td>button_id</td>
        <td></td>
    </tr>
    

    祝你好运!

        3
  •  1
  •   EdChum Arthur G    13 年前

    我在IE8 64位和Windows7中尝试了很多方法。我发现这个方法很完美 MouseDownAt MouseUpAt . 例如,我使用了下面的代码:

     mouseDownAt(locator, "10,10");
     mouseUpAt(locator, "10,10");