加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何处理页面对象模型中的框架

发布时间:2020-12-15 02:12:13 所属栏目:Java 来源:网络整理
导读:你能告诉我如何处理页面对象模型中的帧吗? 尝试使用线性脚本时,同样有效但当我将相同的内容移动到页面对象模型时,脚本会失败. 目前在我的框架中是我遵循的流程: 将switchTo()作为通用函数并放在通用库中. 在需要将控件移动到所需帧的页面中,我调用了通用库
你能告诉我如何处理页面对象模型中的帧吗?

尝试使用线性脚本时,同样有效但当我将相同的内容移动到页面对象模型时,脚本会失败.

目前在我的框架中是我遵循的流程:

>将switchTo()作为通用函数并放在通用库中.
>在需要将控件移动到所需帧的页面中,我调用了通用库的switchTo()方法.
>在将控件传递给框架之后,我已经在所需的web元素中执行了操作.(事情是它无法找到特定的对象)

谁能告诉我可能的问题?

公共图书馆:

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 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");
    }

解决方法

我认为,waitForIdPresent(“id”)在您的情况下抛出错误.
在您提供的评论中,您

public void waitForIdPresent(String wbId)
{
    WebDriverWait wait = new WebDriverWait(Driver.driver,20);
    wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.name(wbId)));   ?
}

在此将By.name更改为By.id.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读