Selenium 常见API封装
Selenium>PageBase.java
PageBase 这个作为所有page即网页的父类,主要封装了一些元素最基本操作例如:点击元素/睡眠等待/输入等常见操作;便于子类即页面直接调用封装的函数直接进行操作同时生成相关日志记录(ps:在此处Logger类是自己自定义的Log类,可以使用log4j 进行替换)
package com.hero.pages.base;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.UnexpectedTagNameException;
import org.openqa.selenium.support.ui.WebDriverWait;
import com.hero.utils.LogType.LogTypeName;
import com.hero.utils.Logger;
/**
* 封装最基本ViewPage操作,生成相关日志记录
* @author jack_qiu
* 2017年11月13日
*/
public class PageBase {
public static WebDriver driver;
public static String pageTitle;
public static String pageUrl;
public static Alert alt;
public PageBase(WebDriver driver) {
PageBase.driver = driver;
}
/**
* 打开url
* @param url String 网址+
*/
protected void GotoUrl(String url){
driver.get(url);
Logger.Output(LogTypeName.INFO, "Go to url:" + url + ".");
}
/**
* 显示等待当前元素
* 判断当前元素是否visble
* @param element
* @return WebElement
*/
protected WebElement isElementVisble(WebElement element){
WebDriverWait wait = new WebDriverWait(driver,60);
return wait.until(ExpectedConditions.visibilityOf(element));
}
/**
* 显示等待当前元素不可见.
* e.g加载页面时有时