4.1切换多窗口的操作
switchTo()
//指定驱动位置
String url1="";
String url2="";
System.setProperty("webdriver.gecko.driver","D:\\demo\\geckodriver.exe");
System.setProperty("webdriver.firefox.bin","D:\\app\\firefox.exe");
WebDriver driver = new FirefoxDriver();
driver.get(url1);
JavascriptExecutor jse = (JavascriptExecutor)driver;
//执行js脚本 //再打开一个页面
jse.executeScript("window.open('http://localhost:802/test/032')");
Thread.sleep(3000);
System.out.println(driver.getTitle());
Set<String> windows = driver.getWindowHandles();
for(String s:windows){
String tmp = driver.switchTo().window(s).getTitle();
boolean flag = tmp.contains("页面");
if(flag){
System.out.println(“03”);
}
}
3)是否存在多个窗口获取
4.2常见控件的操作
普通按钮 单选按钮 复选按钮 click
富文本框/上传/文本框 /日期类型 textarea 输入:sendKeys
下拉列表框 : 选择 :单选 多选
String url1="file:///D:/upup32/htdocs/text";
System.setProperty("webdriver.gecko.driver","D:\\demo\\geckodriver.exe");
System.setProperty("webdriver.firefox.bin","D:\\app\\firefox.exe");
WebDriver driver = new FirefoxDriver();
driver.get(url1);
//单选和复选
//单选框
driver.findElement(By.xpath("//input[@value = 'watermelen']")).click();
//复选框 允许多选
List<WebElement> fruit = driver.findElement(By.name("f1"));
for(WebElement f:fruit){
f.click();
}
String msg = driver.findElement(By)
如果click事件没有生效,需要用js执行。
###下拉列表框
在webdriver中需要装欢为Select对象、
Select f1 =new Select(WebELement);
//select
driver.findElement(By.name(""));
Select f1 =new Select(selectSingle);
f1.selectByIndex(1);//从上到下从零开始;
f1.selectByValue("peach");
f1.selectByVisibleText("4橘子");
f1.deselectAll();//多选可用,取消选择。
System.out,println(f2.isMltiple());//判断是不是多选
上传组件
先获取属性再重新修改
//上传附件
driver.get("url");
String attribute = driver.findElement(By.id("btn1")).getAttribute("onclick");
driver.findElement(By.name("file")).sendKeys("D://");
driver.findElement(By.id("filesubmit")).click());
//日期
driver.findElement(By.id("datepicker")).sendKeys("03/16/2021");
5.对话框的处理(Alert)
确定 取消 可以输入的 判断是不是内藏
String url1="file:///D:/upup32/htdocs/text";
//定义环境变量
System.setProperty("webdriver.gecko.driver","D:\\demo\\geckodriver.exe");
//设置浏览器的位置
System.setProperty("webdriver.firefox.bin","D:\\app\\firefox.exe");
//是个接口
WebDriver driver = new FirefoxDriver();
driver.get(url1);
//找到第一个按钮
driver.findElement(By.id("btn1")).click();
//获取当前对话框点击确定
Alert alter1 = driver.switchTo().alert();
alert1.accept();
//点击取消
Alert alter2 = driver.switchTo().alert();
alert2.dismiss();
//输入
Alert alter3 = driver.switchTo().alert();
alert3.sendKeys("hello");
driver.findElement(By.id("btn3")).click();
(4)如果找不到元素,是不是在子页面iframe。使用switchTo()进行切换。
##4.3操作iframe中的页面元素(子页面)
driver.switchTo().frame(0);//切换至第一个
Sysout(driver.getPageSource());
driver.findElement(By.id("sub_name")).sendKeys("left");
//回主窗体
driver.switchTo().defaultContent();
driver.switchTo().frame(WebElement);
##4.4模拟鼠标键盘的操作(Actions)
Actions action = new Actions(driver);
//鼠标滑动到某个元素
action.moveToElement(driver.findElement(By.linkText("设置")));
driver.findElement(By.linkText("新闻"))。click();
Tread.sleep();
//切换到新闻窗口
Set<String> windows = driver.getWindowHandles();
for(String w:windows){
String title = driver.switchTo().window(w).getTitle();
if(w.equals(url)){
}
}
//向下移动50次
for(int i = 0;i< 50;i++){
//在某些时候找不到
action.sendKeys(Keys.ARROW_DOWN).perform();
//action.sendKeys(Keys.DOWN).perform();ARROW_DOWN是DOWN一个别名。
}
5)尝试使用键盘鼠标事件(实在解决不了了)
for循环添加5个影片
前端写富文本框影评