簡體   English   中英

如何在Selenium IDE中模擬鼠標單擊

[英]How to simulate mouse click in Selenium IDE

我想用Selenuim Ide測試我的全日歷 ,但是我不知道如何模擬日歷上的鼠標單擊。

當我手動執行左鍵單擊全歷時,然后觸發選擇事件。 在Selenium IDE中,我嘗試了下一個命令,但是它不起作用-select事件未觸發:

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無法檢測到此點擊 在此處輸入圖片說明

Update2:更清楚一點,例如,我在JSFiddle中有一個簡單的日歷。 是否可以模擬日歷中一天中某個時間的鼠標單擊?

我終於找到了解決方案:

selenium.MouseDownAt("xpath=(//tr[@data-time='10:00:00']/td[2])", "2,2");
selenium.MouseUp("xpath=(//tr[@data-time='10:00:00'])");

如果發現“ click”或“ clickAt”命令不適用於您的測試用例,則可以嘗試使用一系列“ mouse”命令 ,例如“ mouseDown”,“ mouseUp”等。

這取決於您單擊的元素監聽了什么事件。
例如,在這種情況下,元素可能正在監聽mousedown / up事件。 盡管您單擊了元素,並且IDE記錄了“ click”命令,但是該命令也無法正常工作。

並且,如果需要,請嘗試使用工具Selenium IDE的擴展版本SideeX。 我對在此工具中單擊問題有一些新想法,並使測試用例更靈活。 這是SideeX的鏈接,並且有關於該工具的更多詳細信息。

如果您將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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM