Проблема с использованием локаторов chromedriver 78.0.3904.70 - PullRequest
0 голосов
/ 05 ноября 2019

Я использую последний хром-драйвер 78, я пытаюсь найти элемент внутри модального стиля с помощью CSS-селектора, что-то похожее на это

[data-qa = 'generalTab']> [id = 'ui-id-1']

, я смог запустить свои тесты с помощью драйвера chrome 76. Теперь с обновленным драйвером у меня следующее исключение:

org.openqa.selenium.NoSuchElementException: такого элемента нет: невозможно найти элемент:

, элемент видим, а селектор правильный, мне нужно запустить тест без понижениядо 76.

Элемент находится внутри iframe, и я переключаюсь на iframe следующим образом:

    private void navGeneralTab() {
        focusActions.focusPageContent();
        focusActions.focusIframeModal(thePackageSetupModalIframe());
        scrollIntoView(theGeneralTab());
        try {
            TimeUnit.SECONDS.sleep(5);
            click(theGeneralTab());
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
focusActions.focusIframeModal(regPackagesUi.thePackageSetupModalIframe());

public void focusIframeModal(By by)
{ 
    waitActions.waitForPageLoad(); 
    WebElement element = driver().findElement(by); 
    driver().switchTo().frame(element); 
} 
<iframe name="jqueryDialogIframe" id="jqueryDialogIframe-0" class="jqueryDialogIframe" data-qa="iframeDialog-0" src="regsetup/inventoryItem.do?inventoryitem_id=1366&amp;displayOrder=1" style="width:100%;height:99%" frameborder="0">
<body id="iframe" class="padded 5889_autow99h">
...
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" role="tablist">
        <li data-qa="generalTab" class="ui-state-default ui-corner-top ui-tabs-active ui-state-active" role="tab" tabindex="0" aria-controls="general" aria-labelledby="ui-id-1" aria-selected="true"><a href="#general" class="ui-tabs-anchor"  tabindex="-1" id="ui-id-1">General</a></li>
        <li data-qa="pricesTab" class="ui-state-default ui-corner-top" role="tab" tabindex="-1" aria-controls="pricesAndFees" aria-labelledby="ui-id-2" aria-selected="false"><a href="#pricesAndFees" class="ui-tabs-anchor"  tabindex="-1" id="ui-id-2">Prices &amp; Fees</a></li>
        <li data-qa="advancedTab" class="ui-state-default ui-corner-top" role="tab" tabindex="-1" aria-controls="advanced" aria-labelledby="ui-id-3" aria-selected="false"><a href="#advanced" class="ui-tabs-anchor"  tabindex="-1" id="ui-id-3">Advanced</a></li>
        <li data-qa="sessionBookingTab" class="ui-state-default ui-corner-top" role="tab" tabindex="-1" aria-controls="sessionBooking" aria-labelledby="ui-id-4" aria-selected="false"><a href="#sessionBooking" class="ui-tabs-anchor"  tabindex="-1" id="ui-id-4">Session Booking</a></li>
        <li data-qa="profileValuesTab" class="ui-state-default ui-corner-top" role="tab" tabindex="-1" aria-controls="profileValues" aria-labelledby="ui-id-5" aria-selected="false"><a href="#profileValues" class="ui-tabs-anchor"  tabindex="-1" id="ui-id-5">Profile Values</a></li>
</ul>
</iframe>
</body>

JQuery CSS

.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a {
    cursor: text;
}

Я пытаюсь нажать на вкладку "Общие", но не могу ее найти.

Есть идеи? , Кто-нибудь сталкивался с этой проблемой, элементы не были найдены? Я уже пытался использовать xpath, id, text, scroll, пока не появится.

Обнаружено, что это проблема драйвера и Chrome 78:

Возможная проблема с Chromedriver 78, Selenium не может найти веб-элемент PDF, открытый в Chrome

1 Ответ

0 голосов
/ 07 ноября 2019

Я столкнулся с той же проблемой. Мое расследование приводит меня к этому открытому вопросу. Эта проблема, вероятно, будет исправлена ​​в версии 80. В моем случае Thread.sleep () помог мне. Но это клейкая лента. Я решил не использовать его.
Явное ожидание тоже не помогает. Так что я остаюсь на 76 все еще.

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