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()方法跳出表单。

  • 相关阅读:
    Zara带你快速入门WPF(1)---开篇
    Vue Route Building the UI back-end framework
    TDX指标的理解与改造(价格到达指标线提醒)
    Vue生命周期详解
    Vue轻松入门,一起学起来!
    NodeJs安装步骤与淘宝镜像
    使用npm安装配置vue
    JavaScript面向对象
    vim常用快捷键
    python常用命令
  • 原文地址:https://www.cnblogs.com/peiminer/p/13564722.html
Copyright © 2011-2022 走看看