1.项目中提前导入selenium jar包
操作
导入
import org.openqa.selenium;
import org.openqa.selenium.WebDriver;
import org.openqa.swlenium.Chrom.ChromeDriver;
-
定义浏览器
Webdriver driver = new ChromeDriver(); -
打开网页
driver.get(); -
获取标题
String title = driver.getTitle(); -
最大化窗口
driver.manage().window().maximize(); -
设置窗口大小
driver.manage().window().setSize(new Dimension());
*查找元素
driver.findElement(By.id(""));
.sendKeys("");
- 显示等待
Thread.sleep();
必须放在try catch等可以获取错误的地方 或
public void test1() throws XXXexception{
}
try{
Thread.sleep();
}catch(Exception e){
};
-
隐式等待
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS); -
selenium自带等待
WebDriverWait wait= new WebDriverWait(driver, 10);
WebElement wl = wait.until(new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver d) {
return d.findElement(By.id("avc"));
}
});
WebDriverWait wait = new WebDriverWait(drvier, 10);
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.id("fe")));
driver.manage().timeouts().pageLoadTImeout(5,TimeUint.SECONDS);
页面加载超时时间5s
-
前进/后退/刷新
driver.navigate().forward();
driver.navigate().backward();
driver.navigate().refresh(); -
具体操作
element.send_keys();
element.click();
element.clear();
element.submit(); -
获取信息
element.getSize()获取元素尺寸
element.getText()获取文本
element.getAttribute(name);获取属性
element.isDisplayed(); true/false -
鼠标操作
import org.openwa.selenium.interactions.Actions;
Actions action = new Actions(driver);
action.contextClick(element).perform();
contextClick() 右击
clickAndHold(source,target) 点击并控制:悬停
doubleClick() 双击
dragAndDrop() 拖动
release() 释放鼠标
perform() 执行所有Actions中储存的行为:执行操作
- 键盘操作
import org.openqa.selenium.Keys;
element.send_keys(Keys.CONTROL,"a"); ctrl+a
-
断言常用
getTitle();
getCurrentUrl();
getText(); -
表单切换iframe
driver.switchTo().frame(element);
切换默认:
driver.switchTo().defaultContent(); -
窗口切换
String search_handler = driver.getWindowHandle()获取当前窗口hanlder
Set(String) handlers = driver.getWindowHandles();获取所有窗口hanlder
driver.switchTo().window(hanlder)
- 下拉框
import org.openqa.selenium.support.ui.Select;
WebElement el = 下拉框的定位元素
Select sel = new Select(el);
sel.selectByValue();
- 警告框处理
在 WebDriver中处理JavaScript所生成的alert、confirm以及prompt十分简单,具体做法是使用switch_to_alert()方法定位到alert/confirm/prompt,然后使用text/accept/dismiss/sendKeys等方法进行操作。
accept/dismiss/sendKeys(text)/keysToSend/getText
driver.switchTo().alert().accept
*cookie操作
getCookies 获取所有cookies信息
getCokkiesNamed(String name) 返回字典的key为“name”的cookie信息
addCookie(cookie_dict) 添加cookie,“cookie_dict"指字典对象,必须有key和value
deleteCookieNamed(String name) 删除cookie信息
“name”是要删除的 cookie的名称; “optionsString” 是该Cookie的选项,目前支持的选项包括“路径” , “域” 。
deleteAllCookies() 删除所有 cookie 信息。
import org.openqa.selenium.Cookie;
Cookie c1 = new Cookie("name","key_aaaaa");
driver.manage().addCookie(c1);
//获取cookie
Set<Cookie> coo = deriver.manage().getCookies();
//删除所有
driver.manage().deleteAllCookies();
- js脚本
((JavascriptExecutor)driver).executeScript("window.scrollTo(100,450);");
- 截图
import org.openqa.selenium.TakesScreenShot;
import org.openqa.selenium.OutputType;
import java.io.File;
File srcFile = ((TakesScreenshot)driver).getScreenShotAs(outputType.FILE);
备注错误
出现版本错误时,添加
System.setProperty("webdriver.chrome.driver","D:\\SeleniumDriver\\chromedriver.exe");