selenium Java基础一
selenium工作原理:
1、下载相应的浏览器驱动包
//设置环境变量
System setProperty("webdriver.firefox.marionete","D:\\geckodriver.exe");
//初始化driver
WebDriver driver =new FirefoxDriver();
/请求地址
driver.get("http://www.baidu.com");
2、定位元素
By.tagName() 通过标签定位元素
driver.findElement(By.tagName("input")).sendKeys("user");
By.name() 通过name属性来定位元素
driver.findElement(By.name("passwd")).sendKeys("123456");
By.id() 通过id来定位元素
driver.findElement(By.id("outo")).click();
By.linkText(“注册”) 通过链接信息定位元素
driver.findElement((By.linkText("注册")).click();
By.className() 通过类名定位元素
driver.findElement(By.className("btn")).click();
窗口最大化
driver.manage().window().maximize();
//定位列表中多个元素
WebElement element =driver.findElement(By.className("lnav-iteam"));
List<WebElement> elements = element .findElements((By.tagName"li"));
elements.get(3).click(); 获取第三个元素并点击
常见元素处理
driver.findElement(By.className("btn")).sendKeys(test");
driver.findElement(By.className("btn")).clear();
string s = driver.findElement(By.className("btn")).getAttribute("placeholder");
driver.findElement(By.className("btn")).click();
driver.findElement(By.className("btn")).clear();
boolean aa = driver.findElement(By.className("btn")).isSelectted(); 判断元素是否选中状态
boolean aa = driver.findElement(By.id("btn1")).isSelected(); //判断元素是否选中
boolean aa = driver.findElement(By.id("btn1")).isEnabled() ; //判断元素是否有效
driver.findElement(By.id("btn1")).click() ; //点击按钮
boolean aa = driver.findElement(By.id("btn1")).isEnabled() //判断按钮是否有效
表单 form 元素处理
driver.findElement(By.id("form1")).submit() //提交表单
上传文件
driver.findElement(By.id("photo")).click(); //定位到照片
driver.findElement(By.id("input")).sendKeys("D:\\aa.png"); 将要上传的图片位置提交
下拉框处理
WebElement job= driver.findElement(By.id("jobname")) .click();
Selcet downlist = new Sekect(job);
downlist.selectByIndex(2); //选中下拉框中第三个元素(从0开始排序)
downlist.selectByValue("11") //通过下拉框的 value属性值来选中 第三个元素
downlist.selectByVisibleTest(" python") //通过下拉框展示的值来选中元素
downlist.isMultiple(); //判断列表是否为复选框列表
元素其他操作
WebElement btn= driver.findElement(By.id("btn"));
Actions action = new Actions(driver);
action.click(btn).perform(); //鼠标单击
元素提交可以通过元素点击提交,也可通过鼠标单击提交
WebElement btn1= driver.findElement(By.id("btn1"));
Actions action = new Actions(driver);
action.doubleClick(btn1).perform(); //鼠标双击
WebElement btn2= driver.findElement(By.id("btn2"));
Actions action = new Actions(driver);
action.moveToElement(btn2).perform(); //鼠标悬停
action.conTextClick(btn3).perform(); //鼠标右击
特殊窗体切换
<iframe> ---- </iframe>
WebElement iframe1 = driver.findElement(By.id("iframe"));
driver.switchTo().frame(iframe1); //切换到iframe中
Set< String> handles = driver.getWindowHandles(); //多个tab页 获取多个handle
s = driver.GetWindowHandle(); //获取当前handle
driver.switchTo().windows(s); 切换到某一个handle下
等待函数
规定时间找到特定元素,就会往下执行,超过指定时间,找不到元素就报错
WebDriverWai wait = WebDriverWait(driver,10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("btn")));
全局等待时间,每个页面都会按照这个时间查找元素。超过这个设置的时间就会报错