selenium2入门 定位 窗体切换等等 (二)

定位用的html素材有两个

demo.html

selenium2入门 定位 窗体切换等等 (二)
<html>

<head>

    <title>UI Automation Testing</title>

</head>

<style type="text/css">

    table{font-size:20;text-align:center;width:80%;border-collapse:collapse;margin:auto}    

    table th{background: #ccc}

    .display{color:red}

    .widgetStyle{text-align:left;padding-left:100px}    

</style>

<script>

function display_alert(){

  alert("I am an alert box!!")

}

function show_div(){   

    setTimeout("create_div()", 3000);   

}      

function create_div(){   

    d = document.createElement('div');     

    d.className = "red";  

    d.style.color='red';

    d.innerHTML="wait for display";

    document.getElementById("display").appendChild(d);   

}   

function mouseOver(){

    document.getElementById("over").innerHTML="<div class='display'>Hello World!</div>";

}

function mouseOut(){

    document.getElementById("over").innerHTML="";

}

</script>

<body>

<div>

    <div class="text" style="font-size:36;text-align:center"><b>UI Automation Testing</b></div>

    <br/>

    <table cellpadding="10" cellspacing="0" border="1">

        <thead>

            <tr>

                <th width=20% class="widgetleft">Widget Name</th>

                <th width=80% class="widgetStyle">Widget Operate</th>                

            </tr>

        </thead>

                <tbody>

                    <tr>

                        <td>Input</td>

                        <td class="widgetStyle"><div id='input'><input type="text" id="user"/></div></td>                                            

                    </tr>

                    <tr>

                        <td>Link</td>

                        <td class="widgetStyle"><div id='link'><a href="http://www.baidu.com" class='baidu'>baidu</a></div></td>                        

                    </tr>

                    <tr>

                        <td>Select</td>

                        <td class="widgetStyle"><div id='select'>

                                <select name='select'>

                                  <option value ="volvo">Volvo</option>

                                  <option value ="saab">Saab</option>

                                  <option value="opel">Opel</option>

                                  <option value="audi">Audi</option>

                                </select>

                            </div>

                        </td>                        

                    </tr>

                    <tr>

                        <td>RadioBox</td>

                        <td class="widgetStyle">

                            <div id='radio'>

                                <input type='radio' name="identity" class='Volvo'/><label>Volvo</label></br>

                                <input type='radio' name="identity" class='Saab'/><label>Saab</label></br>

                                <input type='radio' name="identity" class='Opel'/><label>Opel</label></br>

                                <input type='radio' name="identity" class='Audi'/><label>Audi</label>

                            </div>

                        

                        </td>                        

                    </tr>

                    <tr>

                        <td>CheckBox</td>

                        <td class="widgetStyle">

                            <div id='checkbox'>

                                <input type="checkbox" name="checkbox1"/><label>Volvo</label></br>

                                <input type="checkbox" name="checkbox2"/><label>Saab</label></br>

                                <input type="checkbox" name="checkbox3"/><label>Opel</label></br>

                                <input type="checkbox" name="checkbox4"/><label>Audi</label> 

                            </div>

                        </td>                        

                    </tr>

                    <tr>

                        <td>Button</td>

                        <td class="widgetStyle"><div id='button'><input type='button' class='button' value='Submit' disabled="disabled"/></div></td>                        

                    </tr>

                    <tr>

                        <td>Alert</td>

                        <td class="widgetStyle"><div id='alert'><input type='button' class='alert' value='Alert' onclick='display_alert()'/></div></td>                        

                    </tr>

                    <tr>

                        <td>Upload</td>

                        <td class="widgetStyle"><div id='upload'><input type='file' id='load'/></div></td>                        

                    </tr>

                    <tr>

                        <td>Open New Window</td>

                        <td class="widgetStyle"><div id='open'><a href="http://baidu.com" class='open' target='_bank'>Open new window</a></div></td>                        

                    </tr>

                    <tr>

                        <td>Action</td>

                        <td class="widgetStyle"><div id='action'>

                                <input type='button' class='over' value='Action'onmouseover="mouseOver()" onmouseout="mouseOut()"/><div id='over'></div>

                            </div>

                        </td>                        

                    </tr>

                    <tr>

                        <td>Wait</td>

                        <td class="widgetStyle">

                            <div id='wait'><input type='button' class='wait' value='Wait' onclick = "show_div()"/></div>

                            <div id='display'></div>

                        </td>                        

                    </tr>

                    <tr>

                        <td>Iframe</td>

                        <td class="widgetStyle">

                            <iframe width=800 height=330 name=aa frameborder=0 src="./demo1.html"></iframe>

                        </td>                        

                    </tr>

                </tbody>

            

        

    </table>

    <br/>

</div>

</body>

</html>
View Code

demo1.html

selenium2入门 定位 窗体切换等等 (二)
<html>

<head>

    <title>UI Automation Testing</title>

</head>

<style type="text/css">

    table{font-size:20;text-align:center;width:80%;border-collapse:collapse;margin:auto}    

    table th{background: #ccc}

    .display{color:red}

    .widgetStyle{text-align:left;padding-left:100px}    

</style>

<script>

function display_alert(){

  alert("I am an alert box!!")

}

function show_div(){   

    setTimeout("create_div()", 5000);   

}      

function create_div(){   

    d = document.createElement('div');     

    d.className = "red";  

    d.style.color='red';

    d.innerHTML="wait for display";

    document.getElementById("display").appendChild(d);   

}   

function mouseOver(){

    document.getElementById("over").innerHTML="<div class='display'>Hello World!</div>";

}

function mouseOut(){

    document.getElementById("over").innerHTML="";

}

</script>

<body>

<div>

    <div class="text" style="font-size:36;text-align:center"><b>UI Automation Testing</b></div>

    <br/>

    <table cellpadding="10" cellspacing="0" border="1">

        <thead>

            <tr>

                <th width=20% class="widgetleft">Widget Name</th>

                <th width=80% class="widgetStyle">Widget Operate</th>                

            </tr>

        </thead>

                <tbody>

                    <tr>

                        <td>Iframe:Input</td>

                        <td class="widgetStyle"><div id='input'><input type="text" id="user"/></div></td>                                            

                    </tr>

                    <tr>

                        <td>Iframe:Link</td>

                        <td class="widgetStyle"><div id='link'><a href="http://www.baidu.com" class='baidu'>baidu</a></div></td>                        

                    </tr>

                    <tr>

                        <td>Iframe:Select</td>

                        <td class="widgetStyle"><div id='select'>

                                <select name='select'>

                                  <option value ="volvo">Volvo</option>

                                  <option value ="saab">Saab</option>

                                  <option value="opel">Opel</option>

                                  <option value="audi">Audi</option>

                                </select>

                            </div>

                        </td>                        

                    </tr>

                    <tr>

                        <td>Iframe:RadioBox</td>

                        <td class="widgetStyle">

                            <div id='radio'>

                                <input type='radio' name="identity" class='Volvo'/><label>Volvo</label></br>

                                <input type='radio' name="identity" class='Saab'/><label>Saab</label></br>

                                <input type='radio' name="identity" class='Opel'/><label>Opel</label></br>

                                <input type='radio' name="identity" class='Audi'/><label>Audi</label>

                            </div>

                        

                        </td>                        

                    </tr>

                    <tr>

                        <td>Iframe:CheckBox</td>

                        <td class="widgetStyle">

                            <div id='checkbox'>

                                <input type="checkbox" name="checkbox1"/><label>Volvo</label></br>

                                <input type="checkbox" name="checkbox2"/><label>Saab</label></br>

                                <input type="checkbox" name="checkbox3"/><label>Opel</label></br>

                                <input type="checkbox" name="checkbox4"/><label>Audi</label> 

                            </div>

                        </td>                        

                    </tr>

                    <tr>

                        <td>Iframe:Button</td>

                        <td class="widgetStyle"><div id='button'><input type='button' class='button' value='Submit' disabled="disabled"/></div></td>                        

                    </tr>

                    <tr>

                        <td>Iframe:Alert</td>

                        <td class="widgetStyle"><div id='alert'><input type='button' class='alert' value='Alert' onclick='display_alert()'/></div></td>                        

                    </tr>

                    <tr>

                        <td>Iframe:Upload</td>

                        <td class="widgetStyle"><div id='upload'><input type='file' id='load'/></div></td>                        

                    </tr>

                    <tr>

                        <td>Iframe:Open New Window</td>

                        <td class="widgetStyle"><div id='open'><a href="http://baidu.com" class='open' target='_bank'>Open new window</a></div></td>                        

                    </tr>

                    <tr>

                        <td>Iframe:Action</td>

                        <td class="widgetStyle"><div id='action'>

                                <input type='button' class='over' value='Action'onmouseover="mouseOver()" onmouseout="mouseOut()"/><div id='over'></div>

                            </div>

                        </td>                        

                    </tr>

                    <tr>

                        <td>Iframe:Wait</td>

                        <td class="widgetStyle">

                            <div id='wait'><input type='button' class='wait' value='Wait' onclick = "show_div()"/></div>

                            <div id='display'></div>

                        </td>                        

                    </tr>                    

                </tbody>

            

        

    </table>

    <br/>

</div>

</body>

</html>
View Code

定位代码:

代码1:

package info.milan.webdriver;

import java.io.File;

import java.util.List;



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.Select;

public class day4 {

    public WebDriver Driver;

    public void startFirefox(){

        Driver = new FirefoxDriver();

        //最大化

        Driver.manage().window().maximize();

    }

    public void closeFirefox(){

        Driver.close();

        Driver.quit();

    }

    public void goTo(){

        File f = new File("html/demo.html");

        Driver.navigate().to(f.getAbsolutePath());

    }

    //输入框定位

    public void testInput(String str){

        ///对于文本框的操作,都使用sendkeys来操作

        Driver.findElement(By.xpath(".//*[@id='user']")).sendKeys(new String[]{str});

        //Driver.findElement(By.xpath(".//*[@id='user']")).clear();

    }

    //超链接定位

    public void testLink(){

        Driver.findElement(By.xpath("//a[@class='baidu']")).click();

    }

    //下拉框定位

    public void testOption(){

        WebElement element= Driver.findElement(By.cssSelector("select[name='select']"));

        Select select = new Select(element);

        select.selectByValue("audi");

        select.selectByIndex(1);

        select.selectByVisibleText("Audi");

        System.out.println(select.getFirstSelectedOption().getText());

        List<WebElement> options= select.getOptions();

        int optionsSize = options.size();

        System.out.println("options一共有多少个:"+optionsSize);

        for(int i =0;i<optionsSize;i++){

            select.selectByIndex(i);

        }

    }

    //单选框定位

    public void testRadio(){

        //name定位

        List<WebElement> elements= Driver.findElements(By.name("identity"));

        WebElement el= elements.get(2);

        el.click();

        boolean isSelect = el.isSelected();

        System.out.println("是否被选中:"+elements.get(3).isSelected());

    }

    //定位复选框

    public void testCheckBox(){

        //xpath定位

        List<WebElement> elements= Driver.findElements(By.xpath(".//div[@id='checkbox']/input"));

        elements.get(2).click();

//        elements.get(0).click();

        for (WebElement e : elements){

            if (!e.isSelected()){

                e.click();

            }

        }

    }

    public void testButton(){

        WebElement element= Driver.findElement(By.xpath(".//div[@id='alert']/input"));

        element.click();

    }

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        day4 t = new day4();

        t.startFirefox();

        t.goTo();

        t.testInput("你好");    

        //t.testLink();

        t.testCheckBox();

        t.testRadio();

    }



}

代码2:

package info.milan.webdriver;

import java.io.File;

import java.util.Set;



import org.openqa.selenium.Alert;

import org.openqa.selenium.By;

import org.openqa.selenium.JavascriptExecutor;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.openqa.selenium.interactions.Actions;

import org.openqa.selenium.support.ui.ExpectedCondition;

import org.openqa.selenium.support.ui.WebDriverWait;

public class day5 {

    public WebDriver Driver;

    public void startFirefox(){

        Driver = new FirefoxDriver();

        Driver.manage().window().maximize();

    }

    public void closeFirefox(){

        Driver.close();

        Driver.quit();

    }

    public void goTo(){

        File f = new File("html/demo.html");

        Driver.navigate().to(f.getAbsolutePath());

    }

    //模拟点击弹出窗alert的确定。

    public void testAlert(){

        WebElement element= Driver.findElement(By.className("alert"));

        //element.click();

        Actions action = new Actions(Driver);

        action.click(element).perform();

        //获取当前弹出的alert窗

        Alert alert = Driver.switchTo().alert();

        String alertMessage  = alert.getText();

        System.out.println(alertMessage);

        ///模拟点击alert确认按钮

        alert.accept();

    }

    public void testAction(){

        WebElement element= Driver.findElement(By.className("over"));

        Actions action = new Actions(Driver);

        //将鼠标移动到Action的按钮上面

        action.moveToElement(element).perform();

        //输出鼠标移动到action按钮上面后显示的文字。

        System.out.println( Driver.findElement(By.id("over")).getText());;

    }

    //上传

    public void testUpload(){

        WebElement element= Driver.findElement(By.id("load"));

        element.sendKeys("C:\\Users\\Administrator\\Desktop\\123.xls");

    }

    //运行一段js

    public void testJs(){

        JavascriptExecutor javascript =(JavascriptExecutor)Driver;

        javascript.executeScript("alert('你好!')");

        

    }

    //对iframe中元素的操作

    public void testIframe(){

        Driver.findElement(By.id("user")).sendKeys("my test");

        

        WebElement element = Driver.findElement(By.name("aa"));

        Driver.switchTo().frame(element);

        //Driver.switchTo().frame("aa");

        //Driver.switchTo().frame(0);

        Driver.findElement(By.id("user")).sendKeys("iframe test");

        

        Driver.switchTo().defaultContent();

        try {

            Thread.sleep(1000);

        } catch (InterruptedException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        Driver.findElement(By.id("user")).sendKeys("my end test");

    }

    //对多个窗口进行切换操作

    public void testMultiWindow(){

        WebElement element = Driver.findElement(By.className("open"));

        element.click();

        Set<String> handles = Driver.getWindowHandles();

        String handle = Driver.getWindowHandle(); //得到默认最初窗体句柄

        

        handles.remove(handle);

        String newHandle = handles.iterator().next();

        print(newHandle);

        print(handle);

        Driver.switchTo().window(newHandle);

        try {

            Thread.sleep(3000);

        } catch (InterruptedException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        Driver.findElement(By.id("kw")).sendKeys("myString");

        //Driver.close();

        Driver.switchTo().window(handle);

        Driver.findElement(By.id("user")).sendKeys("new test");

        

    }

    //获取延时信息,常用于操作ajax请求返回的信息

    public void testWait(){

        WebElement element = Driver.findElement(By.className("wait"));

        element.click();

        //方法1 用Thread.sleep,设置了10秒,只能10秒后才能获取数据。

//        try {

//            Thread.sleep(6000);

//        } catch (InterruptedException e) {

//            // TODO Auto-generated catch block

//            e.printStackTrace();

//        }

        //Driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);

        //方法2  用WebDriverWait,设置了10秒 如果数据5秒就返回的话,5秒就能获取到数据

        boolean wait = new WebDriverWait(Driver,10).until(new    ExpectedCondition<Boolean>() {

            public Boolean apply(WebDriver    d) {

                return    d.findElement(By.className("red")).    isDisplayed();}

        });

        

        print(String.valueOf(wait) );

        WebElement elementRed = Driver.findElement(By.className("red"));

        String str = elementRed.getText();

        print(str);

        

        

    }

    public void print(String str){

        System.out.println(str);

        

    }



    public static void main(String[] args) {

        // TODO Auto-generated method stub

        day5 t = new day5();

        t.startFirefox();

        t.goTo();

//        t.testMultiWindow();    

//        t.testWait();

        //t.testAction();

        //t.testUpload();

        t.testWait();

    }



}

 

你可能感兴趣的:(selenium)