1. 程式人生 > >webdriver 自動化測試

webdriver 自動化測試

Selenium 是最流行的自動化測試工具,提供一整套的解決方案,其中webdriver remote方式比較靈活,瀏覽器可以指定本地或遠端。部署也簡單,在瀏覽器端執行java服務,客戶端測試用例可以用 Java、Ruby、PHP、Python 編寫。 

測試伺服器: 

下載地址: http://selenium.googlecode.com/files/selenium-server-standalone-2.20.0.jar 

Bash程式碼  收藏程式碼
  1. java -jar selenium-server-standalone-2.20.0.jar  



Ruby: 

Ruby使用watir-webdriver介面。 

測試程式碼: 

Ruby程式碼  收藏程式碼
  1. require "watir-webdriver"  
  2. require "selenium/webdriver/remote/capabilities"  
  3. browser = Watir::Browser.new :remote:url => "http://localhost:4444/wd/hub":desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome  
  4. browser.goto("www.tudou.com")  
  5. browser.text_field(:id
     => 'email').set 'test'  
  6. browser.text_field(:id => 'pwd').set '1234'  
  7. browser.button(:class => 'lg_b').click  
  8. puts browser.text.include? 'SHH'  
  9. browser.li(:id"myTudouNav").fire_event("onmouseover")  
  10. browser.a(:xpath".//*[@id='myTudouNav']/div/ul/li[12]/a").click  
  11. puts browser.text.include? 'SHH'
      
  12. js = <<JS  
  13.     $('.logo').css('border''1px solid red');  
  14. JS  
  15. browser.execute_script js  
  16. browser.close  



安裝watir-webdriver: 

1. 安裝ruby 1.9.3。下載地址:http://rubyinstaller.org/downloads/ 

2. 安裝watir-webdriver。 

    > gem update --system --no-rdoc --no-ri 
    > gem install watir-webdriver --no-rdoc --no-ri 

4. 安裝chromedriver,用於支援chrome。 下載地址:http://code.google.com/p/chromedriver/downloads/list 

PHP: 

PHP使用facebook的php-webdriver介面。 

測試程式碼: 

Php程式碼  收藏程式碼
  1. require_once 'php-webdriver/__init__.php';  
  2. $wd_host = 'http://localhost:4444/wd/hub';  
  3. $web_driver = new WebDriver($wd_host);  
  4. $session = $web_driver->session('chrome');  
  5. $session->open('http://www.tudou.com');  
  6. $session->element('css selector''#email')->value(array('value' => str_split('test')));  
  7. $session->element('css selector''#pwd')->value(array('value' => str_split('1234')));  
  8. $session->element('css selector''.lg_b')->click('');  
  9. echo preg_match('/SSH/s'$session->source()) ? 'ok' : 'error';  
  10. $element = $session->element('id'"myTudouNav");  
  11. $session->moveto(array('element' => $element->getID()));  
  12. $session->element('xpath'".//*[@id='myTudouNav']/div/ul/li[12]/a")->click('');  
  13. $script = <<<JS  
  14. $('.logo').css('border''1px solid red');  
  15. JS;  
  16. $session->execute(array(  
  17.     'script' => $script,  
  18.     'args' => array(),  
  19. ));  
  20. $session->close();  
Python程式碼  收藏程式碼
  1. from selenium import webdriver  
  2. from selenium.webdriver.remote.command import Command  
  3. from selenium.webdriver.common.desired_capabilities import DesiredCapabilities  
  4. browser = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.CHROME);  
  5. browser.get("http://www.tudou.com/");  
  6. browser.find_element_by_css_selector("#email").send_keys("test")  
  7. browser.find_element_by_css_selector("#pwd").send_keys("1234")  
  8. browser.find_element_by_css_selector("input.lg_b").click()  
  9. element = browser.find_element_by_css_selector("#myTudouNav")  
  10. browser.execute(Command.MOVE_TO, {'element': element.id})  
  11. browser.find_element_by_xpath(".//*[@id='myTudouNav']/div/ul/li[12]/a").click()  
  12. js = "$('.logo').css('border', '1px solid red');";  
  13. browser.execute_script(js)  
  14. browser.close()