(简单记录,有不正确的地方请指出) selenium+java可以实现对web页面的自动化控制,在公司内部比较稳定、页面迭代较少的后台web系统使用时非常有效
web自动化收益最大化的情况
1.多更新于后端,前端页面迭代较少
2.在日常迭代中页面改动小
3.对新系统最好有一定的复用性、整合度高
整体说明
web自动化相较于app自动化比较简单,只需要导入jar包和浏览器驱动
常用的浏览器有谷歌和火狐,都有独立的驱动程序。驱动放在浏览器安装目录下
我下载的是chromedriver.exe驱动,注意驱动和自己浏览器的版本要匹配(我记得最早接触的时候还踩过jar包版本和浏览器版本不兼容的坑,已经很久了,具体情况已经忘记,可以注意下)
整个代码以及注释
public void getLogin_Tieba(){
System.out.print("开始web自动化!!");
System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.baidu.com/");
WebElement searchBox=driver.findElement(By.linkText("贴吧"));
searchBox.click();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
WebElement searchBox1=driver.findElement(By.linkText("登录"));
searchBox1.click();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
WebElement searchP=driver.findElement(By.id("TANGRAM__PSP_10__footerULoginBtn"));
searchP.click();
WebElement searchBox2=driver.findElement(By.id("TANGRAM__PSP_10__userName"));
searchBox2.sendKeys("18228013236");
WebElement searchBox3=driver.findElement(By.id("TANGRAM__PSP_10__password"));
searchBox3.sendKeys("abcdefg123");
WebElement searchBox4=driver.findElement(By.id("TANGRAM__PSP_10__submit"));
searchBox4.click();
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
driver.quit();
}
代码内容解释
控件的操作,在appium+java实际例子中有详细说明,这里就不累述
添加驱动:System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
创建驱动对象:WebDriver driver = new ChromeDriver();如果是火狐则需要调整WebDriver driver = new FirefoxDriver();
打开指定地址:driver.get("https://www.baidu.com/");
根据控件Test属性值获取控件,并创建对象:WebElement searchBox=driver.findElement(By.linkText("贴吧"));
执行单击事件:searchBox.click();
打开多个选项卡并可切换不同选项卡进行操作
第一步、先定义好需要用到的url
第二步、创建Robot对象,模拟按键操作,达到打开新选项卡的目的
第三步、获得所有选项卡的句柄,再定位进行操作