zoukankan      html  css  js  c++  java
  • 自动化测试题目某旅游网站题目

    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.List;
    import java.util.Random;
    import java.util.Date;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;

    import javax.swing.Spring;

    import junit.framework.Assert;

    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.firefox.FirefoxDriver;

    public class SeleniumHelper {

    public static void main(String[] arg) {
    // 组和100组 数据
    System.setProperty(
    "webdriver.chrome.driver",
    "C:\Users\Administrator.PC-20121111FEJF\AppData\Local\Google\Chrome\Application\chromedriver.exe");

    // C:UsersAdministrator.PC-20121111FEJFAppDataLocalGoogleChromeApplication

    List cityist = new ArrayList<String>();
    cityist.add("北京");
    cityist.add("上海");
    cityist.add("昆明");
    cityist.add("西安");
    cityist.add("广州");
    cityist.add("南京");
    cityist.add("重庆");
    cityist.add("大连");
    cityist.add("青岛");
    cityist.add("郑州");
    cityist.add("成都");

    int maxIteration = 1;
    // 总验证次数
    for (int index = 0; index < cityist.size(); index++) {
    String sCityname = (String) cityist.get(index);
    for (int indexECity = 1; indexECity < cityist.size(); indexECity++) {

    String eCityname = (String) cityist.get(indexECity);
    if (maxIteration > 3) {
    // 最大次数,退出,防止无限制的迭代
    break;
    }
    Date current = new Date();

    Calendar c = getSpecifiedDay(7);
    try {
    validateWebPage(sCityname, eCityname, current, c.getTime());
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    maxIteration++;
    }

    }

    }

    /**
    * @param step
    * @return
    */
    private static Calendar getSpecifiedDay(int step) {
    Calendar c = Calendar.getInstance();
    c.add(Calendar.DAY_OF_MONTH, step);
    return c;
    }

    /**
    * @param driver
    */
    private static void setSngStatus(WebDriver driver) {
    WebElement sngWebElement = driver.findElement(By.id("searchTypeSng"));
    sngWebElement.click();
    }

    // 执行规则验证
    private static void validateWebPage(String sCityName, String eCityName,
    Date sDate, Date eDate) throws InterruptedException {
    WebDriver driver = new ChromeDriver();
    driver.get("http://flight.qunar.com");

    setSngStatus(driver);// 保证选择单选

    WebElement sinput = driver.findElement(By.name("fromCity"));
    sinput.sendKeys(sCityName);
    WebElement einput = driver.findElement(By.name("toCity"));
    einput.sendKeys(eCityName);
    WebElement sDateinput = driver.findElement(By.name("fromDate"));
    sDateinput.sendKeys(getStringFromDate(sDate));
    // 显示数据,将不可用的状态的控件改为可用
    ((JavascriptExecutor) driver)
    .executeScript("$("#dom_arrivalDateDiv_disable").click()");
    WebElement eDateinput = driver.findElement(By.name("toDate"));
    eDateinput.clear();
    eDateinput.sendKeys(getStringFromDate(eDate));
    WebElement submitCtl = driver.findElement(By.className("btn_txt"));
    submitCtl.submit();// 发送请求
    Thread.sleep(1000);// 页面等待1分钟

    List<WebElement> feeEveryParts = driver.findElements(By
    .cssSelector("span.highlight"));

    if (feeEveryParts == null) {

    WebElement emptyMark = driver
    .findElement(By.className("e_fly_lst"));
    Assert.assertEquals(emptyMark == null, "没有找到提示信息");
    return;

    }

    WebElement feeEveryPart = driver.findElement(By
    .cssSelector("span.highlight"));

    WebElement lineAClick = driver
    .findElement(By.className(".b_avt_lst a"));
    lineAClick.click();
    // 分析结果
    if (feeEveryPart != null) {
    // 此时,有AB2端

    List<WebElement> elements = driver.findElements(By
    .cssSelector(".e_qvt_route h3"));
    Boolean first = elements.get(0).getText().contains("第一");
    Assert.assertEquals(first, "提示信息错误");
    Boolean sencond = elements.get(1).getText().contains("第二");
    Assert.assertEquals(sencond, "提示信息错误");
    } else {
    // 没有航费

    // 有查查询列表
    WebElement priceRange = driver.findElement(By
    .cssSelector("qvt_col_more"));

    if (priceRange != null) {
    String contente = priceRange.getText();
    Assert.assertEquals(contente.contains("报价范围"), "发生错误");
    }

    }

    WebElement result = (WebElement) ((JavascriptExecutor) driver)
    .executeScript("var query= $(".e_qvt_hd"); return query;");

    Assert.assertEquals(result == null, "发生错误");

    driver.quit();

    }

    /**
    * @param eDate
    * @return
    */
    @SuppressWarnings("deprecation")
    private static String getStringFromDate(Date eDate) {
    return DateFormat.getDateInstance(DateFormat.DEFAULT).format(eDate);

    }

    // 获取随机数
    private static int getSpecifiedRandom(int inputNo) {
    if (inputNo <= 0)
    inputNo = 10;
    Random random = new Random();
    return random.nextInt(inputNo);
    }

    }

    不行了,实在困了。先写到这吧,欢迎大家批评啊。算是抛砖引玉,代码的实现不好啊,架构啊,方法名什么的都没考虑啊。以后在优化吧。

  • 相关阅读:
    链表 | 将递增有序的两个链表的公共元素合并为新的链表
    链表 | 将两个递增链表合并为一个递减链表
    雪花特效
    vuex笔记
    Vue路由
    Vue框架使用sass
    vue组件通信
    vue请求数据
    07_06.哈夫曼树
    07_05.通过链接实现二叉树及其遍历
  • 原文地址:https://www.cnblogs.com/wcLT/p/3726644.html
Copyright © 2011-2022 走看看