请告诉我如何在页面对象模型中处理帧?
尝试使用线性脚本时,同样有效,但当我将其移动到页面对象模型时,脚本会失败。
目前在我的框架中是我遵循的流程:
将switchTo()
作为通用函数并放入通用库中。
在需要将控件移动到所需框架的页面中,我调用了通用库的public void switchToFrame(int frame)
{
try
{
Driver.driver.switchTo().frame(frame);
System.out.println("Navigated to frame with name " + frame);
}
catch (NoSuchFrameException e)
{
System.out.println("Unable to locate frame with id " + frame + e.getStackTrace());
}
}
方法。
接下来将控件传递给框架后,我已经在所需的网页元素中执行了操作。(事情是它无法找到特定的对象)
有谁可以告诉我可能的问题?
公共图书馆:
public void createticket(String interactionTitle,String interactionDesc,String category,String originText,String priorityText,String impactText) throws InterruptedException
{
switchToFrame(1);
System.out.println("Navigated to Frame");
waitForIdPresent("X49");
titleEdt.sendKeys(interactionTitle);//unable to enter here
descEdt.sendKeys(interactionDesc);
dropDown(origipublic void createInteraction(String interactionTitle,String interactionDesc,String category,String originText,String priorityText,String impactText) throws InterruptedException
{
switchToFrame(1);
System.out.println("Navigated to Frame");
waitForIdPresent("X49");
Driver.driver.findElement(By.id("X49")).sendKeys(interactionTitle);
descEdt.sendKeys(interactionDesc);
dropDown(originDropDown, originText);
}
页面:
@Test
public void createTestTicket() throws EncryptedDocumentException, InvalidFormatException, IOException, InterruptedException{
homePage.getBtn().click();
homePage.getLnk().click();
interactionDetails.createTicket("test ticket","test ticket","incident","CALL","P1 / <1hour","1 - Enterprise");
}
测试脚本:
{{1}}
答案 0 :(得分:0)
我认为,waitForIdPresent(&#34; id&#34;)会在您的情况下抛出错误。 在您提供的评论中,您
public void waitForIdPresent(String wbId)
{
WebDriverWait wait = new WebDriverWait(Driver.driver,20);
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.name(wbId)));
}
将By.name更改为By.id。