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

时间:2013-06-10 12:53:37

标签: extjs selenium-webdriver

受测系统使用ExtJS Framework创建动态页面。

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

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

元素代码

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 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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");