【问题标题】:How to Maximize Iframe PoPup window in Webdriver?如何在 Webdriver 中最大化 iframe 弹出窗口?
【发布时间】:2014-01-17 11:53:08
【问题描述】:

如何在 Webdriver 中最大化 Iframe 弹出窗口?如屏幕截图所示,在 iframe 中打开的“添加工作经验”部分中有很多问题。现在,当我试图回答这些问题时,我得到了以下例外:- "线程 "main" org.openqa.selenium.ElementNotVisibleException 中的异常:错误消息 => '元素当前不可见,可能无法操作'"

我相信这一定是因为在 iFrame 中打开的弹出窗口未处于最大化状态,并且许多问题不可见,因为相同的代码在 ChromeDriver 中有效,默认情况下“添加工作部分”在 Chrome 中以最大化状态打开.

我试过了。

driver.switchTo().frame(iframes.get(0));

driver.manage().window().maximize();

但这不起作用。

以下是详细的重现步骤:-
1) 转到 Talentconnect.pge.com/sap/bc/webdynpro/sap/hrrcf_a_unreg_job_search?sap-client=810&sap-wd-configId=ZPERJ_A_UNREG_JOB_SEARCH#

用户名:- softwaretesting805@gmail.com 密码:- 1Selenium@

2) 搜索并申请任何工作并进入工作信息页面,当您单击“添加工作”选项卡时,会弹出此弹出窗口,我正在尝试回答当前隐藏在 Scrrenshot 中的状态问题,因为所有 ids 在这些网站是动态的,我使用 dom 结构来回答它们。

            textElements = driver.getDriver().findElements(
                    By.xpath("//input[@type=\"text\"]"));

我的输入 dto 中有“问题”和“答案”,我以这种方式回答它们

            if (question.contains("Employer")) {
                textElements.get(0).sendKeys(answer);
                continue;
            } else if (question.contains("Start Date")) {
                textElements.get(1).sendKeys(answer);
                continue;
            }                        

【问题讨论】:

  • 能否提供网址,让其他人试试?
  • 您不能操纵哪个元素导致“ElementNotVisibleException”异常?请写出你试过的代码?

标签: iframe selenium selenium-webdriver phantomjs selenium-chromedriver


【解决方案1】:

运行增加 iframe 高度和宽度的 javascript,我有自己的示例:

((JavascriptExecutor) driver).executeScript("document.getElementById('containerId').style.height = '200px';");

((JavascriptExecutor) driver).executeScript("arguments[0].style.height = '200px';", element);

【讨论】:

    【解决方案2】:

    有时 Maximize() 无法最大化窗口,用户仍然可以使用提及尺寸的解决方法来最大化窗口。

    这段代码 sn-p 是用 Java 编写的...

    Toolkit tool_kit = Toolkit.getDefaultToolkit (); 
    int width=(int) tool_kit.getScreenSize().getWidth();
    int height=(int) tool_kit.getScreenSize().getHeight();
    Dimension screen_Dimension = new Dimension(width, height);
    web_Driver.manage().window().setSize(screen_Dimension);
    

    希望对你有帮助

    【讨论】:

    • 这确实调整了主父窗口的大小,但 iframe 弹出窗口大小保持不变,因此,国家、州和其他元素仍然不可见,我仍然得到 Element is not current visible 异常
    猜你喜欢
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 2021-03-21
    • 2020-06-11
    相关资源
    最近更新 更多