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个影片

前端写富文本框影评