勾选框、下拉框、文件上传、截图、页面滚动、多窗口、日历

    科技2024-06-30  67

    关于勾选框

    //验证元素是 enable 或者 disable boolean enabled = driver.findElement(By.xpath("xpath ex")).isEnabled(); //验证元素是否被选中select boolean checked = driver.findElement(By.xpath("xpath ex")).isSelected(); //验证元素是否显示display boolean displayed = driver.findElement(By.xpath("xpath ex")).isDisplayed();

    关于下拉框

    获取下拉框所有选项

    getOptions()

    取消选择从下拉列表中选择的所有选项

    doSelectAll()

    WebElement element = driver.findElement(By.name("name")); Select se = new Select(element); se.selectByIndex(index); se.selectByValue(value); se.selectByVisibleText(text);

    文件上传

    把文件在磁盘中的完整路径,通过sendKeys方法实现上传。

    借助第三方工具上传:autolT

    利用robot类上传

    截图

    File file = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); //拷贝到实际保存图片的路径 try{ FileUtils.copyFile(src,new File("C:/selenium/error.png")); }catch(IOException e){ System.out.println(e.getMessage()); }

    如果要实现执行用例发现失败就自动截图,那么需要把这个截图方法进行封装。然后在测试代码中的catch代码块去调用这个截图方法。在PO模式框架中,一般将这个截图方法封装在BasePage类中。

    页面滚动

    String js = "document.documentElement.scrollTop=2000"; ((JavascriptExecutor)driver).executeScript(js);

    在处理多个弹窗窗口的机制

    1.获取所有的弹窗窗口的句柄

    getWindowHandles()

    2.将所有的窗口名称存储到Set变量中,并将其转换成数组

    3.通过数组索引,导航到特定的窗口

    driver.switchTo.window(ArrayIndex);

    获取页面上的帧数

    List framesList = driver.findElements(By.xpath("//iframe"));

    int numOfFrames = frameList.size();

    日历这种web表单如何处理

    1.分析当前网页试用日历插件的前端代码,看看是否可以元素定位,点击日期实现

    2.借助js

    3.有些日历控件是一个文本输入框,直接sendKeys()传入一个时间的数据。

    Processed: 0.018, SQL: 8