0

被测系统使用 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"样式=“宽度: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 屏幕中映射元素吗?

谢谢!

4

2 回答 2

0

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

parentObj.findElement(By.cssSelector('input[name="name"]'));
于 2013-06-10T13:04:11.443 回答
0

如果您的弹出窗口存在于 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");
于 2016-12-20T10:11:00.253 回答