I'm using the latest 78 chromedriver , I'm trying to locate an element inside a modal via CSS Selector, something that looks like this
[data-qa='generalTab'] > [id='ui-id-1']
, I was able to run my tests using chrome driver 76. Now with the updated driver I have the following exception :
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element:
, the element is visible, and the selector is correct , I need to run the test without downgrading to 76.
The element is inside an iframe, and I am switching to the iframe as such:
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&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 & 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;
}
I'm trying to click on General Tab , but I can't find it.
Any ideas ? , Has anyone faced this issue, elements not been located ? , I've already tried using xpath, id, text, scroll until visible.
Found out it's a problem from the driver and Chrome 78:
Possible issue with Chromedriver 78, Selenium can not find web element of PDF opened in Chrome