受测系统使用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屏幕中的元素吗?
谢谢!
答案 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");