多种形式的菜单定位,如下拉框、复选框等

/*
 * 多种形式的菜单定位,如下拉框、复选框等
 */
package com.sfwork;

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.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;

public class PageObjectModel2 {

    public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub
        //设置WebDrivrer路径
        System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google"
                + "\\Chrome\\Application\\chromedriver.exe");
        //创建webdriver对象,控制浏览器
        WebDriver driver = new ChromeDriver();
        //打开selenium处理网页
        driver.navigate().to("file:///C:/Users/Administrator/Desktop/"
                + "%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/example.html");
        //浏览器最大化
        driver.manage().window().maximize();
        //线程休眠3秒
        Thread.sleep(3000);
/*        //上传文件
        WebElement uploadfile = driver.findElement(By.name("attach[]"));
        uploadfile.sendKeys("C:\\Users\\Administrator\\Desktop\\自动化测试\\book1.xsl");
        //线程休眠3秒
        Thread.sleep(3000);
        */
/*        //弹出框
        WebElement al = driver.findElement(By.name("alterbutton"));
        al.click();
        Alert alert = driver.switchTo().alert();
        //打印出弹出框的内容
        System.out.println(alert.getText());
        //线程休眠3秒
        Thread.sleep(3000);
        //弹出框确定
//        alert.accept();
        //线程休眠3秒
        Thread.sleep(3000);
        //点击关闭
        alert.dismiss();
        //线程休眠3秒
        Thread.sleep(3000);    
        */
/*        //向弹出框输入内容,example的第二个例子
        driver.findElement(By.name("promptbutton")).click();
        Alert alert = driver.switchTo().alert();
        //获取弹出框内容
        String text = alert.getText();
        System.out.println(text);
        //向弹出框输入内容
        alert.sendKeys("hello");
        //线程休眠3秒
        Thread.sleep(3000);
        //点击确定
        alert.accept();
        System.out.println(alert.getText());
        //线程休眠3秒
        Thread.sleep(2000);
        alert.accept();
        //线程休眠3秒
        Thread.sleep(3000);
        */
/*        //弹出框,二次确定
        driver.findElement(By.name("confirmbutton")).click();
        Alert alert = driver.switchTo().alert();
        //获取第一个弹出框的内容
        System.out.println(alert.getText());
        //点击确定
        alert.accept();
        //获取第二个弹出框的内容
        System.out.println(alert.getText());
        //点击确定
        alert.accept();
        */
/*        //下拉选择
        //通过ID定位到下拉列表
        WebElement selector = driver.findElement(By.id("Selector"));
        //创建select对象
        Select select = new Select(selector);
        //通过Text选择
//        select.selectByVisibleText("香蕉");
        //通过index选择,是根据自己本身的index去取,而不是取前面的index
//        select.selectByIndex(3);
        //通过value选择
        select.selectByValue("grape");
        //线程休眠3秒
        Thread.sleep(3000);
        //点击选择结果
        driver.findElement(By.name("showSelectResult")).click();;
        Alert alert = driver.switchTo().alert();
        //输入弹出框内容
        System.out.println(alert.getText());
        //点击确定
        alert.accept();
        */
/*        //单选框
        //就是直接定位到选项,然后点击
//        driver.findElement(By.className("AliBaBa")).click();
        //通过cssSelector定位
        driver.findElement(By.xpath("/html/body/center/p[1]/table/tbody/tr[7]/td[2]/div/label[3]"));
        //线程休眠3秒
        Thread.sleep(3000);    
        */
/*        //复选框
        //滚动定位,方法一,通过估窗体坐标x,y值 
//        JavascriptExecutor js= (JavascriptExecutor)driver;
//        js.executeScript("window.scrollTo(1,1000)");
        //方法二,取到定位元素的坐标,然后将值传进去
        //得出定位元素的x坐标值和y坐标值
//        int x = driver.findElement(By.id("checkbox")).getLocation().x;
//        int y = driver.findElement(By.id("checkbox")).getLocation().y;
//        JavascriptExecutor js= (JavascriptExecutor)driver;
//        //将x值和y值传到scrollto中
//        js.executeScript("window.scrollTo("+x+","+y+")");
        //方法三,直接滚动到定位元素处
        JavascriptExecutor js = (JavascriptExecutor)driver;
        js.executeScript("arguments[0].scrollIntoView()",driver.findElement(By.id("checkbox")));
        //线程休眠3秒
        Thread.sleep(3000);
        //勾选wed复选框
        driver.findElement(By.id("web")).click();
        //勾选training复选框
        driver.findElement(By.xpath("//*[@id='training']")).click();
        //勾选friend复选框
        driver.findElement(By.cssSelector("input#friend")).click();
        //线程休眠3秒
        Thread.sleep(3000);
        */
        //下拉列表选择link
        JavascriptExecutor js = (JavascriptExecutor)driver;
        js.executeScript("arguments[0].scrollIntoView()", driver.findElement(By.id("jumpMenu")));
        WebElement selector = driver.findElement(By.id("jumpMenu"));
        //创建一个select实例,并将selector传进去
        Select select = new Select(selector);
        //通过text选择
        select.selectByVisibleText("新乡市教育局");
        //线程休眠3秒
        Thread.sleep(3000);
        //关闭driver
        driver.quit();
    }

}
原文地址:https://www.cnblogs.com/evangline/p/6913230.html