第一篇selenuim测试代码

今天老公要抢阿里云的免费套餐,但是到了快十点了去抢,根本抢不到。最近我也在看selenuim自动化测试的视频,于是就试试用selenuim写个脚本,让程序自己去点领取按钮。说做就做,开始下软件搞环境,却不是一帆风顺,还好有老公这个高手指导,算是完成了一个简单的脚本,运行下来,其实并不比手快,明天凑合试试,循环它100次。在这先把遇到的问题回忆一下:

1、版本问题:

我下的火狐最早是55版本的,因为下了selenuim Ide,根本不能运行,上网查资料,最后说是47版本之后,IDE都运行不去来,我就下了47版本,并且不让它自动更新。IDE可算能用了。IDE的版本是:selenium_ide-2.9.1-fx

下了一个selenuim的jar包,竟然也不能用,报错:找不到火狐的路径。最后下了3.3.1版本的jar包,总算能找到路径了,但是还是调不起来浏览器,网上查询,说是四十几版本以后要下载一个驱动,geckodriver-v0.15.0-win32.exe,就是这个玩意,放在C:\Program Files\Mozilla Firefox\下面,代码要这么写:System.setProperty("webdriver.firefox.marionette","C:\\Program Files\\Mozilla Firefox\\geckodriver.exe");

driver=new FirefoxDriver();

这下总算调起来浏览器了。

2、登录的输入框,用IDE识别不了,看视频上老师讲的这应该是界面里面嵌的ifrme,需要先switchTo到这个frame,然后再通过F12识别里面的输入框。这个frame的id是什么,我一直搞不懂,还好我老公在这帮我找到了,还是通过F12定位的。同样,里面的输入框也是这么定位到的。

3、关于页面跳转。因为我们要找的页面需要跳转很多次才能找到,所以老公提议:我们登录界面之后,直接输入目标界面的网址,让页面跳转到我们需要的那个页面,同时session还在。于是我就这么做了,事实上确实达到了我们的目的。

4、点击了 开抢 的按钮之后,弹出一个对话框,然后按 确定 按钮,我之前看老师讲的,认为这是一个alert对话框,就按照alert处理,结果异常显示页面上没有alert对话框。看了代码,发现这也是个超链接。按照超链接处理之后,代码就完成了。

现在把代码贴出来,做个记录:

package com.aliyun.basic;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.*;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.openqa.selenium.WebDriver;

public class ALiYun {

private WebDriver driver;

public static void main(String args[]){

ALiYun alyTest = new ALiYun();

try {

alyTest.init();

alyTest.testALiYun();

alyTest.tearDown();

} catch (Exception e) {

e.printStackTrace();

}

}

public  void init() throws Exception {

System.setProperty("webdriver.firefox.marionette","C:\\Program Files\\Mozilla Firefox\\geckodriver.exe");

driver=new FirefoxDriver();

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

driver.get("https://free.aliyun.com/");

driver.manage().window().maximize();

}

public  void testALiYun() throws Exception {

driver.findElement(By.linkText("登录")).click();

driver.switchTo().frame("alibaba-login-box");

driver.findElement(By.id("fm-login-id")).clear();

driver.findElement(By.id("fm-login-id")).sendKeys("1××××××××××");

driver.findElement(By.id("fm-login-password")).clear();

driver.findElement(By.id("fm-login-password")).sendKeys("××××××××××××××");

driver.findElement(By.id("fm-login-submit")).click();

Thread.sleep(5000);

driver.get("https://free.aliyun.com/ntms/free/experience/getTrial.html?spm=5176.7973419.726407.45.60377efktwIif");

int i;

for(i=0;i<5;i++){

driver.findElement(By.linkText("立即领取(10:00 开抢)")).click();

driver.findElement(By.linkText("确定")).click();

}

}

public void tearDown() throws Exception{

driver.close();

}

}

你可能感兴趣的:(第一篇selenuim测试代码)