如何在ExtJS弹出窗口中找到一个元素

被测系统使用ExtJS Framework来创建动态页面 .

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

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

Element Code

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屏幕中的元素吗?

谢谢!

回答(2)

2 years ago

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

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

2 years ago

如果您的弹出窗口出现在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");