java+selenium webdriver怎么实现数据参数化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java+selenium webdriver怎么实现数据参数化相关的知识,希望对你有一定的参考价值。

1.Selenium IDE 、 2.Selenium Remote Control 、 3.Selenium Grid 、4.Selenium WebDriver
1. Selenium IDE作为Firefox上的一个插件,提供录制功能,个人观点,如果能手写代码,就不要用这个东西。
2. Selenium Remote Control是一个客户端/服务器系统,可以在本地或在其他电脑上控制Web浏览器,使用几乎任何编程语言和测试框架。
3. Selenium Grid 可以远程的控制到并在多个服务器上同时运行测试
4. Selenium WebDriver可以在本地或远程计算机上的驱动浏览器

补充:Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

参考技术A selenium的projects包含如下几个方面:
1.Selenium IDE 、 2.Selenium Remote Control 、 3.Selenium Grid 、4.Selenium WebDriver
1. Selenium IDE作为Firefox上的一个插件,提供录制功能,个人观点,如果能手写代码,就不要用这个东西。
2. Selenium Remote Control是一个客户端/服务器系统,可以在本地或在其他电脑上控制Web浏览器,使用几乎任何编程语言和测试框架。
3. Selenium Grid 可以远程的控制到并在多个服务器上同时运行测试
4. Selenium WebDriver可以在本地或远程计算机上的驱动浏览器本回答被提问者和网友采纳
参考技术B 参数化:
public class testSchoolRoom
public WebDriver driver;
public String baseUrl = "http://wuhan.eduyun.cn";
public String LinkTest;
public String LinkTestPassWord;

public void startUrl() throws Exception
driver = new FirefoxDriver();
driver.get(baseUrl);
// driver.manage().window().maximize();


@DataProvider(name = "testData")
public Object[][] testNetHomeWrok_data()
return new Object[][] "300522624", "1234", "f","密码长度在6-20之间" ,
"300522624", "123456789","f","密码输入有误" ,
"300522624", "1234qwer", "t","王丽娟的工作空间" ;


@Test(dataProvider = "testData")
public void testTcShortPasswordLg(String userName, String passWord,String flag,
String excepted) throws Exception
startUrl();
driver.findElement(By.id("info_username")).clear();
driver.findElement(By.id("info_username")).sendKeys(userName);
driver.findElement(By.id("info_password")).clear();
driver.findElement(By.id("info_password")).sendKeys(passWord);
driver.findElement(By.id("info_submit")).click();
if(flag == "t")
LinkTest = driver.findElement(By.xpath("//li[contains(concat(' ', @class, ' '), ' jykj_blue ')]//strong")).getText().trim();
assertEquals(excepted, LinkTest);
LinkTest = null;
Thread.sleep(2000);

else
LinkTest = driver.findElement(By.xpath("//p[contains(concat(' ', @class, ' '), ' warnmsg ')] "))
.getText().trim();
assertEquals(excepted, LinkTest);
LinkTest = null;
Thread.sleep(2000);


driver.quit();

参考技术C 连接数据库!

java+selenium3-常用的WebDriver API

常用的WebDriver API

访问某网站

package com.wb.api;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class WebDriverTest 
    public static void main(String[] args) 
        WebDriver driver;
        // 设置浏览器驱动环境变量
        System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\ChromeCore\\chromedriver.exe");
        driver = new ChromeDriver();
        //方法1
        driver.get("http://www.baidu.com");
        //方法2
        driver.navigate().to("http://www.imooc.com");
    

 

单击浏览器的后退功能

//访问百度网页
driver.get("http://www.baidu.com");
//访问搜狗网页
driver.navigate().to("http://www.sogou.com");
driver.navigate().back(); //访问上一次访问的百度网页

 

单击浏览器的前进功能

//访问百度网页
driver.get("http://www.baidu.com");
//访问搜狗网页
driver.navigate().to("http://www.sogou.com");
driver.navigate().back(); //访问上一次访问的百度网页
driver.navigate().forward(); //跳转到搜狗网页

 

刷新当前页面

//刷新页面
driver.navigate().refresh();

 

操作浏览器窗口

//声明一个Point对象,两个100表示相对于屏幕左上角(0,0)的横坐标和纵坐标
Point point = new Point(100, 100);
        
//声明 一个Dimension对象,两个200表示浏览器窗口的长度和宽度
Dimension dim = new Dimension(200, 200);
        
//setPosition方法表示设定浏览器在屏幕上的位置为Point对象的坐标(100, 100)
//在某些浏览器版本中此方法失效
driver.manage().window().setPosition(point);
        
//setSize方法表示设定浏览器窗口的大小(200, 200)
driver.manage().window().setSize(dim);
        
//getPosition方法表示获取浏览器在屏幕的位置
//在某些浏览器版本中此方法失效
System.out.println(driver.manage().window().getPosition());
        
//getSize方法表示获取浏览器窗口的大小
System.out.println(driver.manage().window().getSize());

 

获取页面的Title属性

//获取页面的Title
String title = driver.getTitle();
System.out.println(title);

 

获取页面的源代码

//获取页面的源代码
String pageSrCode = driver.getPageSource();
System.out.println(pageSrCode);

 

获取当前页面的URL地址

//获取页面的URL
String pageUrl = driver.getCurrentUrl();
System.out.println(pageUrl);

 

在输入框中输入内容

//获取输入框元素
WebElement searchInput = driver.findElement(By.id("kw"));
//输入指定内容 searchInput.sendKeys(
"hello world");

 

清除输入框中的内容

//获取输入框元素
WebElement searchInput = driver.findElement(By.id("kw"));
searchInput.sendKeys("hello world");
try 
    Thread.sleep(2000);
 catch (InterruptedException e) 
    e.printStackTrace();

//清除输入框内容
searchInput.clear();

 

单击按钮

//获取按钮元素
WebElement btn = driver.findElement(By.id("btn"));
//单击按钮元素
btn.click();

 

双击某个元素

//获取输入框元素
WebElement inputEle = driver.findElement(By.id("kw"));
//声明Actions对象
Actions builder = new Actions(driver);
//双击输入框
builder.doubleClick(inputEle).build().perform();

 

以上是关于java+selenium webdriver怎么实现数据参数化的主要内容,如果未能解决你的问题,请参考以下文章

使用Java查找Selenium WebDriver中的分页表中的行数

selenium:如果用户关闭浏览器或webdriver会怎么样?如何检测浏览器是否已关闭?

webdriver(selenium+appium)

selenium webdriver怎么定位td里面的元素

selenium webdriver怎么生成测试报告

使用 Java 在 Selenium WebDriver (selenium 2) 中处理警报