zoukankan      html  css  js  c++  java
  • 10.selenium之多表单切换

    在 Web 应用中经常会遇到 frame/iframe 表单嵌套页面的应用, WebDriver 只能在一个页面上对元素识别与 定位, 对于 frame/iframe 表单内嵌页面上的元素无法直接定位。 这时就需要通过 switchTo().frame()方法将当前定 位的主体切换为 frame/iframe 表单的内嵌页面中。

    <html>
      <body>
        ...
        <iframe id="x-URS-iframe" ...>
          <html>
             <body>
               ...
               <input name="email" >

    126邮箱登录框的结构大概是这样子的,想要操作登录框必须要先切换到iframe表单。

    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;
     
     
    public class MailLogin {
     
      public static void main(String[] args){
     
        WebDriver driver = new ChromeDriver();
        driver.get("http://www.126.com");
     
        WebElement xf = driver.findElement(By.xpath("//*[@id='loginDiv']/iframe"));
        driver.switchTo().frame(xf);
        driver.findElement(By.name("email")).clear();
        driver.findElement(By.name("email")).sendKeys("username");
        driver.findElement(By.name("password")).clear();
        driver.findElement(By.name("password")).sendKeys("password");
        driver.findElement(By.id("dologin")).click();
        driver.switchTo().defaultContent();
        driver.quit();
      }
    }

    如果完成了在当前表单上的操作,则可以通过switchTo().defaultContent()方法跳出表单。

  • 相关阅读:
    WCF 第二章 契约 异步访问服务操作
    WCF 第一章 基础 在IIS中寄宿服务
    哈希表 解释 和 实现
    ACM2010省赛总结
    hashTable实现
    c# winform 应用编程代码总结 14
    徽文化让世博更多彩
    c# winform 应用编程代码总结 15
    Socket用法详解
    IE插件技术 BHO C# IE 插件
  • 原文地址:https://www.cnblogs.com/peiminer/p/13564722.html
Copyright © 2011-2022 走看看