【发布时间】:2010-11-23 08:01:20
【问题描述】:
我对 selenium 中的 Click 和 ClickAt 命令之间的区别感到困惑。我在哪里可以使用ClickAt 命令?
【问题讨论】:
标签: selenium
我对 selenium 中的 Click 和 ClickAt 命令之间的区别感到困惑。我在哪里可以使用ClickAt 命令?
【问题讨论】:
标签: selenium
以下是 Selenium IDE 关于这两个命令的说明:
click(locator)
参数:
- 定位器:元素定位器
点击链接、按钮、复选框或 单选按钮。如果点击动作 导致加载新页面(如链接 通常会),调用 waitForPageToLoad。
还有:
clickAt(locator, coordString)
参数:
- 定位器:元素定位器
- coordString : 指定鼠标的 x,y 位置(即 - 10,20) 与返回的元素相关的事件 通过定位器。
点击链接、按钮、复选框或 单选按钮。如果点击动作 导致加载新页面(如链接 通常会),调用 waitForPageToLoad。
click 用于当您只想“点击”某个元素时使用,例如按钮、链接……
当您想要“点击”鼠标坐标指定的位置时,使用clickAt。
我想第二个可能对一些“丰富”的应用程序有用——我实际上从未使用过它......另一方面,我一直使用click。
如果您有一个包含表单元素、链接、按钮和类似内容的页面,您可能通常会使用 click :使用它的 id 或类名来查找元素比必须找到它的位置要容易得多页面像素^^
【讨论】:
在测试 ExtJS 应用程序时,我注意到 click() 和 clickAt() 之间存在一些差异。 例如,如果我尝试 单击 Ext.TabPanel 中的选项卡,click() 命令不起作用,尽管我为其提供了正确的 xpath,并且 clickAt( ) 工作正常。 代码如下所示:
click("//li[@id='tab-panel-id__second-tab-id']/a[2]/em/span/span")
没用,但是
clickAt("//li[@id='tab-panel-id__second-tab-id']/a[2]/em/span/span","0,0")
有效。 注意坐标是(0,0)
我不明白为什么会这样……
【讨论】:
我正在测试一个 GWT 应用程序,如果我想单击树小部件中的节点,似乎必须使用 clickAt。
【讨论】:
测试 clickAt 时要小心。有时双击命令会导致它显示为红色。您将更改线路以尝试其他替代方案,但没有任何效果。但是然后运行您的脚本,无论您输入什么内容,clickAt 行都可以正常工作。
【讨论】:
我们的应用程序中有一个 dojo 小部件,它仅适用于 clickAt("//span[@id='mastheadIconBar']/span[1]/span/span","0,0")。
不知道为什么,但只有click("//span[@id='mastheadIconBar']/span[1]/span/span") 不起作用。
【讨论】: