提问者:小点点

使用chrome驱动程序78.0.3904.70定位器时出现问题


我正在使用最新的78 ChromeDrive,我试图通过CSS选择器定位模态中的元素,看起来像这样

[数据-qa='一般选项卡']

,我能够使用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>

JQueryCSS

.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,滚动直到可见。

发现这是司机的问题,Chrome78:

ChromeDrive 78可能出现问题,Selenium找不到PDF的网页元素Chrome


共1个答案

匿名用户

我也遇到了同样的问题。我的调查把我引向了这个公开的问题。这个问题可能会在v80修复。在我的例子中,Thread.睡眠()帮助了我。但这是管道胶带。我决定不使用它。
显式等待也没有帮助。所以我仍然停留在76。