任何人都可以解释为什么/如何在Selenium IDE中,对于我要点击的项目,click
不起作用,但使用mouseOver
,mouseDown
,{{1同一目标上的{}和mouseUp
确实有效。我甚至试图使用上面的多个,例如:
mouseOut
当使用waitForElementPresent
mouseDown
mouseOver
mouseDown
click
mouseOut
无法正常工作时,设法为我工作了。我似乎也没有得到任何错误,也不知道该怎么做。任何帮助表示赞赏。
更新
我点击了Selenium IDE中的 Find 按钮,它突出显示了上面所有6个命令的元素,但是当我运行任何命令或案例时,它实际上从未实际点击它。
答案 0 :(得分:1)
点击那里有各种各样的实现, 有些人使用Javascript来监听鼠标按下事件,有些人使用鼠标按下鼠标或点击或鼠标悬停在div或td上它们实现为可点击元素然后JS开始工作并且你得到预期的点击动作,
因此,没有一个正确的事件你应该启动,而是测试它们或全部执行它们,
我使用以下命令,它适用于大多数无法使用简单“点击”命令的元素:
<tr>
<td>focus</td>
<td>//div[@class='dhtmlx_wins_btns_button dhtmlx_button_close_over_pressed']</td>
<td></td>
</tr>
<tr>
<td>mouseOver</td>
<td>//div[@class='dhtmlx_wins_btns_button dhtmlx_button_close_over_pressed']</td>
<td></td>
</tr>
<tr>
<td>mouseMoveAt</td>
<td>//div[@class='dhtmlx_wins_btns_button dhtmlx_button_close_over_pressed']</td>
<td></td>
</tr>
<tr>
<td>mouseDown</td>
<td>//div[@class='dhtmlx_wins_btns_button dhtmlx_button_close_over_pressed']</td>
<td></td>
</tr>
<tr>
<td>mouseDownAt</td>
<td>//div[@class='dhtmlx_wins_btns_button dhtmlx_button_close_over_pressed']</td>
<td></td>
</tr>
<tr>
<td>clickAt</td>
<td>//div[@class='dhtmlx_wins_btns_button dhtmlx_button_close_over_pressed']</td>
<td>0,0</td>
</tr>
你可以尝试更多的事件,直到它工作,如果你仍然遇到问题,那么确保你的元素路径是正确的(使用selenium firefox IDE并在FireBug打开时按“查找”按钮,它将着色元素和它是带有黄色发光颜色的Html代码,因此您可以确保元素路径正确),
另一个技巧是右键单击元素并单击“等待文本...”并将该命令的路径复制到我之前说过的单击和其他命令
如果要隐藏的元素被隐藏(例如浮动图层html),那么您可以更改其属性display:none to display:block in the firebug(temporary),这样您就可以使用右键单击技巧来提取确切的路径
答案 1 :(得分:1)
如果您录制了&#34; Selenium Builder&#34;在具有iFrame的页面上的脚本,我不相信记录器将记录switchTo事件,即使鼠标访问它也没有问题。因此,在重放时,如果没有Selenium switchTo,除非您手动添加switchTo帧调用,否则selenium甚至无法单击该元素。
答案 2 :(得分:0)
尝试访问location_once_scrolled_into_view成员变量(例如,如下面的代码所示)。
ScrolledPosition = element.location_once_scrolled_into_view
element.click()
出于某种原因,即使您的代码实际上没有明确使用存储在那里的位置,这通常也会让点击工作。
答案 3 :(得分:0)
我能够让Selenium IDE点击该项目,即使它似乎不是正确的方法。下面是Selenium IDE的HTML。
<tr>
<td>mouseDown</td>
<td>css=div.dhtmlx_wins_btns_button.dhtmlx_button_close_default</td>
<td></td>
</tr>
<tr>
<td>clickAt</td>
<td>//div[@class='dhtmlx_wins_btns_button dhtmlx_button_close_over_pressed']</td>
<td>0,0</td>
</tr>
或者您可以使用//div[@class='dhtmlx_wins_btns_button dhtmlx_button_close_default']
代替CSS定位器
如果某人有更好的方式来点击它,我仍然会感激,因为它似乎仍然是错误的方式。
答案 4 :(得分:0)
点击元素<td>
时也遇到同样的问题。我使用方法selenium.clickAt(locator, coordString)
f.e:
selenium.clickAt("element id - easily localized by firebug / firepath [firefox addon]","1.1");