簡體   English   中英

Ruby Selenium Webdriver測試腳本(需要建議)

[英]Ruby Selenium Webdriver test script (need advice)

我有一個小任務來創建ruby + webdriver測試腳本。 但是我只能使用ruby和webdriver。 您能給我一些沒有Rspec或測試單元的建議嗎? 我還需要使用一些OOP模型進行此測試。

有以下要求:

測試用例

  1. 運行瀏覽器
  2. 清除瀏覽器Cookie
  3. 前往網站
  4. 點擊“查找”
  5. 在搜索欄中輸入關鍵字並提交表格
  6. 解析具有搜索結果的第一頁:將搜索結果第一頁上給出的信息存儲為您鍵入的所選結構化數據(即哈希的哈希值或哈希數組,無論要解析的結構如何)。
  7. 確保解析的搜索結果中每個項目的至少一個屬性(標題,目標,技能等)包含關鍵字。 登錄stdout,其中自由職業者和屬性包含關鍵字,而不含。
  8. 點擊隨機自由職業者的頭銜
  9. 進入該自由職業者的個人資料
  10. 檢查每個屬性值是否等於在#6中創建的結構中存儲的屬性值之一
  11. 檢查至少一個屬性是否包含關鍵字

要求:

  1. 瀏覽器和關鍵字應該是可配置的。 測試應與它們的任何組合一起運行。
  2. 想象一下,這不是一個簡單的小任務,而是可以擴展的大型可伸縮項目。 因此,實施適當的OOP模型/方法。
  3. 證明選擇的模型/方法。
  4. 每個操作,每個比較結果等均應相應記錄(即,記錄到stdout)。 目標:當腳本通過時-應將詳細的測試用例步驟集中到STDOUT中,以便任何人都可以閱讀並重復完全相同的步驟和驗證,但要手動進行。
  5. 代碼應加注解,以便任何人都可以輕松地找出正在執行的操作以及這些代碼塊/方法/等的目的。

目前,我已經完成了1-5步,並堅持了6步。 我需要將用戶數據保存在哈希哈希中,然后再執行下一步。

    # encoding: utf-8
require "selenium-webdriver"
require "test/unit"

class Tests < Test::Unit::TestCase

  def setup
    @keyword = "qa tester"
    @driver = Selenium::WebDriver.for :firefox
    @base_url = "https://www.odesk.com"
    @driver.manage.timeouts.implicit_wait = 30

  end

  def teardown
    @driver.quit

  end

  def element_present?(how, what)
    @driver.find_element(how, what)
    true
  rescue Selenium::WebDriver::Error::NoSuchElementError
    false
  end

  def test_1

    @driver.get(@base_url + "/")
    @driver.find_element(:link, "Hire Freelancers").click
    @driver.find_element(:name, "q").clear
    @driver.find_element(:name, "q").send_keys @keyword
    @driver.find_element(:css, "input.oSearchSubmit").click


  end

end

orde所述,您的問題相當廣泛,但是您至少可以通過修改“ test_1”方法來開始執行第6步,從而解析無序的搜索結果列表:

def test_1
  @driver.get(@base_url + "/")
  @driver.find_element(:link, "Hire Freelancers").click
  @driver.find_element(:name, "q").clear
  @driver.find_element(:name, "q").send_keys @keyword
  @driver.find_element(:css, "input.oSearchSubmit").click
  results_list = @driver.find_element(:xpath, "//ul[@class='oSearchResultsList']")
  individual_results = results_list.find_elements(:xpath, "//li[@class='oSearchResultItem']")
  individual_results.each do
    # do some parsing of each search result here
  end
end

那時,您只需要確定要提取並填充到哈希中的特定數據元素(或選擇的任何數據結構)即可。

暫無
暫無

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

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