webdriver 自動化測試
阿新 • • 發佈:2019-02-05
Selenium 是最流行的自動化測試工具,提供一整套的解決方案,其中webdriver remote方式比較靈活,瀏覽器可以指定本地或遠端。部署也簡單,在瀏覽器端執行java服務,客戶端測試用例可以用 Java、Ruby、PHP、Python 編寫。
測試伺服器:
下載地址: http://selenium.googlecode.com/files/selenium-server-standalone-2.20.0.jar
- java -jar selenium-server-standalone-2.20.0.jar
Ruby:
Ruby使用watir-webdriver介面。
測試程式碼:
- require "watir-webdriver"
- require "selenium/webdriver/remote/capabilities"
- browser = Watir::Browser.new :remote, :url => "http://localhost:4444/wd/hub", :desired_capabilities => Selenium::WebDriver::Remote::Capabilities.chrome
- browser.goto("www.tudou.com")
- browser.text_field(:id
- browser.text_field(:id => 'pwd').set '1234'
- browser.button(:class => 'lg_b').click
- puts browser.text.include? 'SHH'
- browser.li(:id, "myTudouNav").fire_event("onmouseover")
- browser.a(:xpath, ".//*[@id='myTudouNav']/div/ul/li[12]/a").click
- puts browser.text.include? 'SHH'
- js = <<JS
- $('.logo').css('border', '1px solid red');
- JS
- browser.execute_script js
- 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介面。
測試程式碼:
- require_once 'php-webdriver/__init__.php';
- $wd_host = 'http://localhost:4444/wd/hub';
- $web_driver = new WebDriver($wd_host);
- $session = $web_driver->session('chrome');
- $session->open('http://www.tudou.com');
- $session->element('css selector', '#email')->value(array('value' => str_split('test')));
- $session->element('css selector', '#pwd')->value(array('value' => str_split('1234')));
- $session->element('css selector', '.lg_b')->click('');
- echo preg_match('/SSH/s', $session->source()) ? 'ok' : 'error';
- $element = $session->element('id', "myTudouNav");
- $session->moveto(array('element' => $element->getID()));
- $session->element('xpath', ".//*[@id='myTudouNav']/div/ul/li[12]/a")->click('');
- $script = <<<JS
- $('.logo').css('border', '1px solid red');
- JS;
- $session->execute(array(
- 'script' => $script,
- 'args' => array(),
- ));
- $session->close();
- from selenium import webdriver
- from selenium.webdriver.remote.command import Command
- from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
- browser = webdriver.Remote('http://localhost:4444/wd/hub', DesiredCapabilities.CHROME);
- browser.get("http://www.tudou.com/");
- browser.find_element_by_css_selector("#email").send_keys("test")
- browser.find_element_by_css_selector("#pwd").send_keys("1234")
- browser.find_element_by_css_selector("input.lg_b").click()
- element = browser.find_element_by_css_selector("#myTudouNav")
- browser.execute(Command.MOVE_TO, {'element': element.id})
- browser.find_element_by_xpath(".//*[@id='myTudouNav']/div/ul/li[12]/a").click()
- js = "$('.logo').css('border', '1px solid red');";
- browser.execute_script(js)
- browser.close()