zoukankan      html  css  js  c++  java
  • Selenium quick start note

    Selenium

    Selenium automates browsers.

    Selenium Introduction:

    Selenium Types:

    ·         Selenium IDE: a Firefox add-on that will do simple record-and-playback of interactions with the browser

    ·         Selenium RC (Remote Control): Selenium 1. deprecated. WebDriver is the successor.

    ·         Selenium WebDriver: Selenium 2. a collection of language specific bindings to drive a browser -- the way it is meant to be driven.

    ·         Selenium Server: used by both WebDriver and Remote Control. Built-in grid capabilities.

    ·         Selenium-Grid: Selenium Grid allows you to run your tests in parallel, that is, different tests can be run at the same time on different remote machines.

    Selenium-WebDriver supports the following browsers along with the operating systems these browsers are compatible with.

    ·         Google Chrome 12.0.712.0+

    ·         Internet Explorer 6, 7, 8, 9 - 32 and 64-bit where applicable

    ·         Firefox 3.0, 3.5, 3.6, 4.0, 5.0, 6, 7

    ·         Opera 11.5+

    ·         HtmlUnit 2.9

    ·         Android – 2.3+ for phones and tablets (devices & emulators)

    ·         iOS 3+ for phones (devices & emulators) and 3.2+ for tablets (devices & emulators)

      

    Selenium IDE note:

                    Use guide: http://seleniumhq.org/docs/02_selenium_ide.html

                                    Install, launch IDE;

                    IDE feature:

                                    add test case/suite, record, edit, run, log, reference;

                                    export html/junit/python/c#/TestNG/Ruby;

                    Export script types:

    WebDriver

    Remote Control

    WebDriver Backend (java only)

     

    Selenese – Selenium commands:

    Command reference:http://release.seleniumhq.org/selenium-core/1.0.1/reference.html

                    Actions: do things like “click this link”, some with “AndWait” suffix.

                    Accessors: examine the status and store the results in variables;

                    Assertions: verify that the state conforms to what’s expected. All in 3 modes:

    assert” (once it fails, test is aborted),

    verify” (once it fails, test will continue)

    waitFor” (test halts after timeout).

     

    Selenium 2.0 and WebDriver     http://seleniumhq.org/docs/03_webdriver.html

                    Some reason why you will need the Selenium-Server -

    ·         You are using Selenium-Grid to distribute your tests over many machines / VMs.

    ·         You want to connect to a remote machine that has a particular browser version that is not on your current machine.

    ·         You are not using the Java bindings and would like to use HtmlUnit Driver

     

    Java env setup with Maven:

                    Maven 3.0.3: http://maven.apache.org/download.html

                    selenium-java  for Maven: http://seleniumhq.org/download/maven.html

    1.       Download Maven and add it to path;

    2.       Create a pom.xml in your project and run “mvn clean install” in your project folder; (This will download Selenium and all its dependencies and will add them to the project.)

    3.       Import your project into Eclipse after you run “mvn eclipse:eclipse” to generate project files for Eclipse. Your Eclipse must have m2eclipse installed (http://m2eclipse.sonatype.org/installing-m2eclipse.html for Eclipse 3.5.2 and 3.6.1 only).

    pom.xml: 

     <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
            <modelVersion>4.0.0</modelVersion>
            <groupId>MySel20Proj</groupId>
            <artifactId>MySel20Proj</artifactId>
            <version>1.0</version>
            <dependencies>
                <dependency>
                    <groupId>org.seleniumhq.selenium</groupId>
                    <artifactId>selenium-java</artifactId>
                    <version>2.12.0</version>
                </dependency>
            </dependencies>
    </project>

     Java test sample:

     

    package org.openqa.selenium.example;

    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.support.ui.ExpectedCondition;
    import org.openqa.selenium.support.ui.WebDriverWait;

    public class Selenium2Example  {
        public static void main(String[] args) {
            // Create a new instance of the Firefox driver
            // Notice that the remainder of the code relies on the interface,
            // not the implementation.
            WebDriver driver = new FirefoxDriver();

            // And now use this to visit Google
            driver.get("http://www.google.com/");
            // Alternatively the same thing can be done like this
            // driver.navigate().to("http://www.google.com/");

            // Find the text input element by its name
            WebElement element = driver.findElement(By.name("q"));

            // Enter something to search for
            element.sendKeys("Cheese!");

            // Now submit the form. WebDriver will find the form for us from the element
            element.submit();

            // Check the title of the page
            System.out.println("Page title is: " + driver.getTitle());
           
            // Google's search is rendered dynamically with JavaScript.
            // Wait for the page to load, timeout after 10 seconds
            (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
                public Boolean apply(WebDriver d) {
                    return d.getTitle().toLowerCase().startsWith("cheese!");
                }
            });

            // Should see: "cheese! - Google Search"
            System.out.println("Page title is: " + driver.getTitle());
           
            //Close the browser
            driver.quit();
        }
    }

    Here is a guide on Jave env setup without Maven: http://www.silverwareconsulting.com/index.cfm/2010/5/17/Getting-Started-with-WebDriver-a-Browser-Automation-Tool

     

    References:

    http://seleniumhq.org/

    Blog: http://seleniumhq.wordpress.com/

     

    docs

    http://www.ibm.com/developerworks/cn/java/wa-selenium-ajax/

    http://www.ibm.com/developerworks/cn/opensource/os-webautoselenium/

    http://www.cnblogs.com/hyddd/archive/2009/05/30/1492536.html

     

  • 相关阅读:
    BZOJ2002 [HNOI2010] 弹飞绵羊
    BZOJ1030 [JSOI2007] 文本生成器
    BZOJ3233 [AHOI2013] 找硬币
    BZOJ4269 再见xor
    BZOJ5297 CQOI2018 社交网络
    LOJ149 0/1分数规划
    BZOJ2132 圈地计划
    UOJ131 [NOI2015] 品酒大会
    composer速度慢(composer更换国内镜像)
    thinkphp6安装报错,composer install tp6 报错 Parse error: syntax error
  • 原文地址:https://www.cnblogs.com/markjiao/p/2252834.html
Copyright © 2011-2022 走看看