四,弹出框
京东购物车为例 , 点击‘删除’ 或者‘移到我的关注’ ,就会弹出下面这个框框,练吧:
(其实这也不是常规的弹出框,二是div css前端技术做的效果,本想做个Alert的案例,实在不好找例子)
真正的Alert ,不能用常规页面元素方法定位到,可以用以下办法处理:几种弹出框的处理办法
Alert alert = driver.switchTo().alert();
alert.accept(); //确定
alert.dismiss(); //取消
alert.getText(); //获取弹框内容
------------------------------------------------------------
下面是今天案例的思路
1.首页点击购物车
2.要求登录,输入用户名&密码
3. 找到第一个商品
4.移动到购物车
package TestCases; import java.awt.AWTException; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class SeleniumAction_CheckBox { private static WebDriver driver; private static String baseUrl; public static void main(String[] args) throws AWTException { driver=new ChromeDriver(); baseUrl="https://www.jd.com"; driver.get(baseUrl); driver.findElement(By.linkText("我的购物车")).click(); //System.out.println(currentWindow); // 得到所有窗口的句柄 String windowHandle1 = GetCurrentWindowHandle(driver); SwitchWindowHand(windowHandle1); System.out.println(windowHandle1); driver.findElement(By.linkText("登录")).click(); driver.switchTo().frame("dialogIframe"); driver.findElement(By.linkText("账户登录")).click(); driver.findElement(By.id("loginname")).sendKeys("**********");//输入京东用户名 driver.findElement(By.id("nloginpwd")).sendKeys("***********");//输入密码 driver.findElement(By.id("loginsubmit")).click(); driver.switchTo().defaultContent(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); List<WebElement> list = driver.findElements(By.xpath("//div[@class='item-form']//a[2]")); // System.out.println(list.size()); // for(WebElement E:list){ // System.out.println(E.getText()); // } System.out.println(list.get(2).getText()); list.get(2).click(); driver.findElement(By.linkText("确定")).click(); } public static String GetCurrentWindowHandle(WebDriver dr){ return dr.getWindowHandle(); } public static void SwitchWindowHand(String currentWindow) { Set<String> handles = driver.getWindowHandles(); Iterator<String> it = handles.iterator(); while (it.hasNext()) { String handle = it.next(); if (currentWindow.equals(handle)) continue; //跳出当前循环 WebDriver window = driver.switchTo().window(handle); } } }