Селен становится очень медленным при переключении между iframe - PullRequest
0 голосов
/ 13 сентября 2018

Я прохожу через ту же проблему (не решена, кстати) по этому вопросу Java, но на C #: Тестовый сценарий работает очень медленно после открытия нового окна с iFrame

iframe Iя переключаюсь на:

<iframe id="iframeXYZ" width="100%" height="2280px" frameborder="0" src="/Pages/Abc.html">
</iframe>

Код для выбора этого iframe:

    var frameXYZ = driver.FindElement(By.Id("IdOfMyFrame"));
    driver.SwitchTo().Frame(frameXYZ);
        //I do my stuff here, then return to the main frame
    driver.SwitchTo().DefaultContent(); 

В классе нет ни Thread.Sleep, ни даже явных / неявных ожиданий.

Я столкнулся с этой информацией, но даже с использованием идентификатора iframe, это не помогло:

Метод webdriver.switchTo (). Frame () может принимать имя или идентификатор.Это должно было бы искать DOM (объектную модель документа) по имени или идентификатору.Вы можете иметь несколько вещей на странице с одним и тем же атрибутом имени.Так что использование атрибутов id, как правило, быстрее.Однако, если компьютер, на котором работает браузер, работает медленно и / или в DOM много атрибутов, переключение фреймов может занять некоторое время.

Существует также webdriver.switchTo (). Frame () метод, который принимает индекс.Так что, если вы знаете, что это фрейм № 1, вы можете просто использовать webdriver.switchTo (). Frame (1).Но если порядок кадров может измениться, это не поможет.Вы также можете использовать WebElement для переключения фреймов.Поэтому иногда метод webdriver.findElement () будет находить фрейм быстрее, и переключение на этот WebElement будет происходить быстрее.

Это действительно больше помогает оптимизировать ваш код для ускорения.

Шрифт: https://grokbase.com/t/gg/webdriver/15bh2n599f/switching-between-frames-is-very-slow

Я хотел бы знать, связана ли эта проблема с самим браузером Chrome, и если у него нет окончательного решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...