selenium的常用操作

时间:2022-12-09 22:55:19
webdrivce -打开浏览器、关闭、最大化窗口
//设置chromedriver的启动路径
System.setProperty("webdrivce.chrome.driver",路径);
System.setProperty(
"webdriver.gecko.driver", pathWebdriver_geckodriver);
//System.setProperty("webdriver.firefox.bin","D:\\Mozilla Firefox\\firefox.exe");//若浏览器安装不是默认路径


//创建chromedriver对象,实例化对象
WebDriver driver=new ChromeDriver();

//打开网页
//方法一,推荐:
drive.get("http://baidu.com");
//方法二:
driver.navigate().to("https://www.baidu.com/");

//关闭网页
driver.close();
driver.quit();
//会停止驱动

//窗口最大化
driver.manage().window().maximize();

webdrivce
-浏览器窗口大小设定
//创建尺寸对象
Dimension b=new Dimension(600,500);
//窗口大小设定
driver.manage().window().setSize(b);

具体操作
//输入内容
WebElement a = driver.findElement(By.id("subject"));
a.sendKeys(
"海德");
//时间等待
Thread.sleep(3000);
//select选择
Select aSelect=new Select(driver.findElement(By.id("state")));
aSelect.selectByVisibleText(
"四川省");
//点击
WebElement b = driver.findElement(By.id("submit"));
b.click();
//获取标签内的值
WebElement a = driver.findElement(By.id("search"));
String mm1
=a.getText();
//获取属性值
WebElement m2 =driver.findElement(By.linkText("我分配的任务"));
m2.getAttribute(
"href");
m2.getAttribute(
"value");
//断言,两个参数是否一致,错的话会统计出failure错误,用例终止
assertEquals("你", m2.getAttribute("value"));
//切换frame
driver.switchTo().frame("ueditor_0");//切换iframe
driver.switchTo().defaultContent();
//或是
//driver.switchTo().parentFrame();
//wait等待
WebDriverWait wait = new WebDriverWait(driver,10);//最长等待10s
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("kw")));//等待元素
//获取当前网页
driver.getCurrentUrl();
//鼠标停留显示
Actions action = new Actions(driver);
WebElement m1
=driver.findElement(By.xpath(".//ul[@id='browser']//*[contains(text(),'办公室主任')]"));
action.moveToElement(m1).build().perform();
driver.findElement(By.xpath(
".//ul[@id='browser']//*[contains(text(),'办公室主任')]/*/*[text()='修改']")).click();
确定取消弹窗
//确定 ok
driver.switchTo().alert().accept();
//取消 cancel
driver.switchTo().alert().dismiss();


滚动到元素位置
WebElement b1
=driver.findElement(By.xpath(".//*[@id='dialog-authorize']//*[@id='sub_btn']"));
((JavascriptExecutor)driver).executeScript(
"arguments[0].scrollIntoView();", b1);


页面切换:
// 1、获得目前所在的句柄
String currentWindow = driver.getWindowHandle();
// 2、获得所有的句柄
Set<String> handles = driver.getWindowHandles();
// 3、切换句柄
Iterator<String> it = handles.iterator();
while (it.hasNext()) {
if (currentWindow == it.next())
continue;
driver.switchTo().window(it.next());
}
//4、在切换后的句柄中进行操作

java自动化用例关联excel表格的数据方式(导入jxl的jar包)
String datetime
= null;
//实例化文件操作流
InputStream instream = new FileInputStream("/Users/Cedar/EDU/test06.xls");
//实例化 读文件的操作对象。并打开文件。
jxl.Workbook readwb = Workbook.getWorkbook(instream);
//实例化 工作表(序号从0开始。此处设置的是第2个工作表)的操作对象
Sheet readsheet = readwb.getSheet(1);
//实例化 单元格(序号从0开始。此处设置的单元格位置是第2列 第3行)的操作对象
Cell cell = readsheet.getCell(1, 2);
//读取 上面这个实例化的单元格内容。内容是字符串类型,然后赋值给一个字符串变量。
datetime = cell.getContents();
//关闭文件
readwb.close();

API封装
公共方法或函数,可以设定返回值,需要的时候导入包就行了