我想用Selenuim Ide测试我的fullcalendar,但我无法想象如何在我的日历上模拟鼠标点击。
当我手动执行左键单击fullcalendar中的某个时间时,会触发select事件。在selenium IDE中,我尝试了下一个命令,但是它没有工作 - 选择事件没有被触发:
selenium.FireEvent("xpath=(//tr[@data-time='08:00:00'])", "click");
selenium.Click("xpath=(//tr[@data-time='08:00:00'])");
我想点击的元素示例:
<tr data-time="08:00:00">
<td class="fc-axis fc-time fc-widget-content" style="width: 47px;">
<span>08:30</span></td><td class="fc-widget-content">
</td>
</tr>
更新:测试没问题但是,fullcalendar无法检测到此次点击
更新2:为了更清楚,例如我在这里有一个简单的日历 JSFiddle。是否可以在日历中的某个时间模拟鼠标点击?
答案 0 :(得分:0)
我最终找到了解决方案:
selenium.MouseDownAt("xpath=(//tr[@data-time='10:00:00']/td[2])", "2,2");
selenium.MouseUp("xpath=(//tr[@data-time='10:00:00'])");
答案 1 :(得分:0)
如果您发现“click”或“clickAt”命令对您的测试用例不起作用,您可以尝试一系列“鼠标”命令,例如“mouseDown”,“mouseUp”和等等。
这取决于您点击的元素听过什么事件
例如,在这种情况下,元素可能是监听mousedown / up事件。虽然您单击了元素并且IDE记录了“单击”命令,但该命令也无法正常工作。
并且,如果您需要,请尝试使用SideeX工具,即Selenium IDE的扩展版本。
我有一些关于点击此工具中的问题的新想法,并使测试用例灵活。
以下是SideeX的链接,有关该工具的详细信息。
答案 2 :(得分:0)
如果将Capybara与Selenium Driver一起用于Ruby验收测试,那么您将拥有一个页面助手,该助手可为您提供当前页面的上下文。该页面的驱动程序方法将使您可以访问当前运行的驱动程序(由Capybara.default_driver或Capybara.current_driver指定)。如果未另行指定,则默认情况下为Selenium。现在我们有了驱动程序,我们可以通过浏览器帮助程序方法访问Firefox浏览器,这使我们可以访问find_element。有一个关于“ find_element”的重要注意事项。 bugzilla.mozilla中存在一个错误,其中tr节点被渲染为不可见,并将引发异常“元素无法滚动到视图中”。解决方案是访问tr元素的td元素,如下所示:
page.driver.browser.find_element(:xpath, "//tr[@data-time='10:00:00']/td[2]").click