簡體   English   中英

如何使用watir-webdriver和ruby自動執行滑塊?

[英]How can I automate a slider using watir-webdriver and ruby?

我正在嘗試使用watir-webdriver和ruby自動化Jquery UI滑塊,但是沒有運氣。 我希望能夠操縱滑塊以增大或減小該值。 我到處搜索,並詢問了一些同事,但沒人能回答。 我為滑塊附加了一段HTML代碼。 任何幫助將非常感激。

URL鏈接: http//www.whatcar.com/new-car-deals/ (價格范圍滑塊)

我還沒有為滑塊做任何編碼,因為我不知道如何去做。 如果我能走上正確的道路,那太好了。 此外,似乎HTML代碼似乎沒有顯示在我所問的問題上。

這是一個Jquery小部件,一旦單擊其中一個句柄,它就會出現(查看腳本)以響應按鍵。 句柄是鏈接對象,在一對div內,外部的ID值為“ slider-range”

您應該能夠通過browser.div(:id => 'slider-range').link(:index => n)這些問題,其中n = 0代表左手,n = 1代表右手。

首先手動嘗試

  • 單擊滑塊的左手柄
  • 然后按鍵盤上的箭頭鍵。每按一次左右箭頭鍵,它將向上或向下移動1K(磅)。
  • 將其右移后,單擊Home鍵,它應重置為最小值
  • 對右手柄重復以上操作,但使用End鍵將其重置為最右端。

從理論上講,您可以在右側滑塊上觸發單擊事件以獲取焦點,然后觸發一些按鍵事件以將其首先設置為最右端(結束),然后用足夠的向左箭頭將其向下移動到所需的最高值。

對左手柄重復上述操作,用Home鍵將其設置在左端,然后按向右箭頭鍵將其移動

我現在沒有時間進行進一步的實驗並開發一個確切的腳本,但是我認為您甚至可以創建兩個小函數,即使它們采用了上限和下限范圍的值,並且進行了所需的按鍵操作也可以將下限從5K到正確的數量,上限從100k向下

請注意,這件事是非常事件驅動的,它會響應(至少在玩游戲時觀看開發工具時)被鼠標懸停,鼠標按下,鼠標上移等。如果使用click不能“引起注意”控件,使其能夠響應按鍵,請嘗試使用onmousedown事件。

使用答案中的代碼,將左側滑塊移動到12K

browser.div(:id => 'slider-range').link(:index => 0).click  #make sure it has focus
browser.div(:id => 'slider-range').link(:index => 0).send_keys :home #set to 5K    
7.times do
   browser.div(:id => 'slider-range').link(:index => 0).send_keys :arrow_right
end 

這很棒。 我們只是將這些滑塊添加到我們的網站,而我的第一個念頭是“我們將如何使其自動化!?”。

我想添加一個示例,該示例將提供完整的代碼,供人們嘗試使用。 以下內容與jqueryui.com上的示例進行了交互。

require "watir-webdriver"
@browser = Watir::Browser.new :chrome
@browser.goto "http://jqueryui.com/slider/#default"
@browser.frame(:class => "demo-frame").span(:class =>"ui-slider-handle").click
@browser.frame(:class => "demo-frame").span(:class =>"ui-slider-handle").send_keys :home 
puts "clicked home"
7.times do
  @browser.frame(:class => "demo-frame").span(:class =>"ui-slider-handle").send_keys :arrow_right
end 

為了使用Rspec和Watir-Webdriver與Page-Object gem實現此目的,我使用了:

div(:slider, id: "slider-range") #in page file
#then in spec file
browser.slider_element.input.send_keys :home

該答案來自http://watir.com/guides/special-keys/

非常感謝Chuck。 我知道了 這是我使用的腳本:

@browser.link(:xpath, "/html/body/div/div[3]/div[4]/div/div/div/a").send_keys :arrow_right

仍然需要一些調整,但是我現在可以了。

暫無
暫無

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

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