java+selenium实现web⾃动化
1.环境搭建:
eclipse4.8 + java1.8 + selenium-3.14 基本都是使⽤最新版
(3) jdk安装成功后,要配置环境变量
(4) selenium各版本jar包下载地址
selenium需要的jar包:selenium-server-standalone-3.4.0.jar
(5) 创建java project项⽬,把相关jar包引⼊
需要下载浏览器对应的webDriver,放到D:\eclipse-workspace\java_Selenium_Demo1\
注意:webDriver必须与浏览器版本相对应,否则会出现问题。
2.新建java⼯程 java_selenium_Demo1
(1)新建lib(Folder)⽂件夹拷⼊所需驱动和jar包(并引⼊⼯程)
(2)新建testCase⽤例
package test;
import urrent.TimeUnit;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.Select;
public class testCase {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "D:\\eclipse-workspace\\java_Selenium_Demo1\\lib\\");// chromedriver驱动存放地址 WebDriver driver = new ChromeDriver(); // 新建⼀个WebDriver 的对象,但是new 的是⾕歌的驱动
driver.manage().window().maximize(); //浏览器最⼤化
String url = "www.baidu";
<(url); // 打开指定的⽹站
//driver.navigate().to(url); // 打开指定的⽹站
/*
*
* driver.findElement(By.id("kw")).sendKeys(new String[] { "hello" });//
* 到kw元素的id,然后输⼊hello driver.findElement(By.id("su")).click(); // 点击按扭
*/
try {
/**
* WebDriver⾃带了⼀个智能等待的⽅法。 driver.manage().timeouts().implicitlyWait(arg0, arg1);
* Arg0:等待的时间长度,int 类型; Arg1:等待时间的单位 TimeUnit.SECONDS ⼀般⽤秒作为单位。
*/
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
} catch (Exception e) {
e.printStackTrace();
}
//获取当前浏览器的信息
System.out.println("Title:" + Title());
System.out.println("currentUrl:" + CurrentUrl());
//执⾏js脚本
String jString = "alert('给他弹出⼀个HelloWord')";
((JavascriptExecutor) driver).executeScript(jString);
// 处理alert框
System.out.println(driver.switchTo().alert().getText());
Thread.sleep(10);
driver.switchTo().alert().accept();
//获取单个元素
WebElement element = driver.findElement(By.id("wrapper"));
System.out.Attribute("class"));
//获取多个元素
List<WebElement> elList = driver.findElements(By.tagName("input"));
for (WebElement e : elList) {
System.out.println("获取多个元素:"+e.getAttribute("name"));
}
/
/定位层级元素
WebElement e = driver.findElement(By.cssSelector("#qrcode-item qrcode-item-1")); List<WebElement> list = e.findElements(By.tagName("div"));
for (WebElement e1 : list) {
System.out.println("定位层级元素:"+e1.getAttribute("class"));
}
//获取当前的窗⼝
String currentWindow = WindowHandle();
//获取所有的窗⼝
Set<String> handles = WindowHandles();
//遍历窗⼝
Iterator<String> iterator = handles.iterator();
while (iterator.hasNext()) {
if (currentWindow == ())
continue;
//跳转到弹出的窗⼝
WebDriver driver2 = driver.switchTo().());
}
//处理弹出框
Alert alert = driver.switchTo().alert();
alert.dismiss();//相当于点击取消
Alert confirm = driver.switchTo().alert();
confirm.accept();//相当于点击确认
Alert prompt = driver.switchTo().alert();
prompt.accept();
prompt.sendKeys("测试1");//输⼊值
//处理下拉列表
Select select = new Select(driver.findElement(By.id("select")));
select.selectByIndex(1);
select.selectByValue("西安");
select.selectByVisibleText("咸阳");
//获取下拉框的全部选项
List<WebElement> list2 = Options();
for (WebElement webElement : list2) {
webElement.click();//点击下拉框
}
//处理cookie
//添加⼀个cookie
Cookie cookie = new Cookie("COOKIE", "NAME","D://COOKIES");
driver.manage().addCookie(cookie);
//获取cookies
Set<Cookie> set = driver.manage().getCookies();
Iterator<Cookie> iterator2 = set.iterator();
while (iterator2.hasNext()) {
Cookie c = ();
}
driver.manage().deleteAllCookies();
driver.manage().deleteCookie(cookie);
driver.manage().deleteCookieNamed("COOKIE");
/
/等待加载完页⾯
try {
driver.manage().timeouts().wait(1);
driver.manage().timeouts().implicitlyWait(1,TimeUnit.SECONDS);//等待界⾯加载完
} catch (InterruptedException e2) {
e2.printStackTrace();
}
//模拟⿏标和键盘操作
Actions action = new Actions(driver);
action.click();
action.dragAndDrop(element, e);
action.sendKeys(element,"12222").perform();
action.click(element);selenium获取cookie
action.keyDown(currentWindow);
driver.quit();// 退出浏览器
/**
* dr.quit()和dr.close()都可以退出浏览器,简单的说⼀下两者的区别:第⼀个close,
* 如果打开了多个页⾯是关不⼲净的,它只关闭当前的⼀个页⾯。第⼆个quit,
* 是退出了所有Webdriver所有的窗⼝,退的⾮常⼲净,所以推荐使⽤quit最为⼀个case退出的⽅法。 */
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论