【问题标题】:How to locate an element in a ExtJS pop window如何在 ExtJS 弹出窗口中定位元素
【发布时间】:2013-06-10 12:53:37
【问题描述】:

被测系统使用 ExtJS 框架创建动态页面。

场景是当用户单击主浏览器页面上的按钮时,会出现一个弹出窗口,我想在此子窗口的文本字段中输入文本。

我找到的唯一元素是外框,然后我尝试使用它来定位我想要的文本字段,但它失败了。

元素代码

input type="text" size="16" autocomplete="off" id="name" name="name" class="x-form-text x-form-field x-form-invalid x-form -focus" style="width: 233px;"

我试过下面的代码:

            WebElement parentObj = getDriver().findElement(
            By.cssSelector("#parentObj "));

            WebElement newObj = parentObj.findElement(
            By.xpath("//input[@id='name']"));
            newObj.click();
            newObj.sendKeys("Text to enter");

谁能帮助在子 extJS 屏幕中映射元素?

谢谢!

【问题讨论】:

    标签: extjs selenium-webdriver


    【解决方案1】:

    也许您应该尽可能多地使用 CSS 选择器:

    parentObj.findElement(By.cssSelector('input[name="name"]'));
    

    【讨论】:

      【解决方案2】:

      如果您的弹出窗口存在于 iframe 中,您需要先切换到该 iframe。

      使用以下代码切换到 iframe,然后您可以使用现有的选择器。

      var iframe = driver.findElement(By.TagName("iframe"));
      driver.SwitchTo().Frame(iframe);
      
      
      WebElement parentObj = driver.findElement(By.cssSelector("#parentObj "));
      
      WebElement newObj = parentObj.findElement(By.xpath("//input[@id='name']"));
      newObj.click();
      newObj.sendKeys("Text to enter");
      

      【讨论】:

        猜你喜欢
        • 2022-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-15
        • 2021-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多