ОШИБКА: возникла исключительная ситуация [ОШИБКА: неподдерживаемая команда [selectFrame | индекс = 1 | ]] при экспорте кода из Selenium IDE в Webdriver - PullRequest
0 голосов
/ 04 июля 2018

Код экспорта:

 public void testUntitledTestCase() throws Exception {

    driver.get("URL");

    driver.findElement(By.xpath("//button[@id='add-items']")).click();

    driver.findElement(By.id("item_title")).sendKeys("Automation");

    driver.findElement(By.id("item_cat_id")).click();

    // ERROR: Caught exception [ERROR: Unsupported command [selectFrame | index=1 | ]]

    driver.findElement(By.linkText("Cat1")).click();

    // ERROR: Caught exception [ERROR: Unsupported command [selectFrame | relative=parent | ]]

    driver.findElement(By.xpath("//button[@id='item-save']"").click();
  }

Ошибка в том месте, где открывается Iframe. В приложении есть форма, в которой в некоторых полях есть кнопки, а при нажатии на них открывается другое представление во всплывающем окне (Iframe). Мне нужно выбрать элемент из Iframe. Выдает ошибку:

// ERROR: Caught exception [ERROR: Unsupported command [selectFrame | index=1 | ]].
// ERROR: Caught exception [ERROR: Unsupported command [selectFrame | relative=parent | ]]

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Если это не рамка, а всплывающее окно или окно, попробуйте это:

String parentWindowHandler = driver.getWindowHandle (); // Сохраняем родительское окно Строка childWindowHandler = null;

    Set<String> handles = driver.getWindowHandles(); // get all window handles
    Iterator<String> iterator = handles.iterator();
    while (iterator.hasNext()){
        childWindowHandler = iterator.next();
    }
    driver.switchTo().window(childWindowHandler); // switch to popup window


    // perform operations on popup

    try {
        assertTrue(isElementPresent(By.xpath("//div[@id='mainDocumentContainer']/div/div[2]/div/div/div[2]/div/table/tbody/tr/td")));
      } catch (Error e) {
        verificationErrors.append(e.toString());
      }
      try {
        assertEquals("Numéro d'opération :   Epicure 1", driver.findElement(By.xpath("//div[@id='mainDocumentContainer']/div/div[2]/div/div/div[2]/div/table/tbody/tr[2]/td")).getText());
      } catch (Error e) {
        verificationErrors.append(e.toString());


   //Back to main window   

    driver.switchTo().window(parentWindowHandler);
0 голосов
/ 04 июля 2018

Вы уверены, что это iFrame?

Если это так, попробуйте получить имя iFrame. Поможет вам сосредоточиться на правильном Iframe / окне / вкладке.

Надеюсь, это поможет вам:)

List ele = driver.findElements (By.tagName ("iframe")); System.out.println ("Количество кадров на странице:" + ele.size ());

для (WebElement el: ele) { // Возвращает идентификатор кадра.

        System.out.println("Frame Id :" + el.getAttribute("id"));
      //Returns the Name of a frame.

        System.out.println("Frame name :" + el.getAttribute("name"));
    }
...