У меня динамически отображается значок счетчика на странице, указывающий, что страница загружается, мне нужно определить, когда он исчезает (этот бит мне понятен)
Каждый раз, когда я нажимаю на этот счетчик в Google Chrome, проверяю, и я нажимаю copy xpath, я получаю это:
/html/body/vr-root/vr-route-handler/vr-layout/mat-sidenav-container/mat-sidenav-content/div/mat-sidenav-container/mat-sidenav-content/div/div/bs-campus/div/div/bs-data-grid/div/div[2]/mat-spinner/svg/circle
Но когда я пытаюсь найти этот элемент (даже внутри Chrome проверяйте инструмент нажатием CTR + F, он не находит его.
Есть ли другой способ найти его? Я пытался найти его с относительным xpath, но он тоже не удался:
.//div/mat-spinner
Редактировать: добавлен рисунок
Редактировать 2: когда я приостанавливаю страницу в Chrome Inspect -> Source -> Pause Выполнение скрипта, я могу искать и находить (ctr + f) элемент в chrome inspect по:
.//mat-spinner
, но когда страница запущена (а элемент все еще виден), она не может быть найдена.
Журнал ошибок при попытке доступа к нему с помощью веб-драйвера
org.openqa.selenium.TimeoutException: Expected condition failed: waiting for element to be clickable: By.xpath: .//div/mat-spinner (tried for 10 second(s) with 500 milliseconds interval)
at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:113)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:283)
at base.StaticSeleniumDriver.getWebElement(StaticSeleniumDriver.java:362)
at steps.BaseSteps.debugDrawSpinner(BaseSteps.java:55)
at ?.Given Debug draw spinner(Campus.feature:190)
Caused by: org.openqa.selenium.NoSuchElementException: Cannot locate an element using By.xpath: .//div/mat-spinner
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:19:58.91Z'
System info: host: 'BANNB061', ip: '10.0.75.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_181'
Driver info: driver.version: StaticSeleniumDriver
Использование следующего кода:
WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds);
return wait.until(ExpectedConditions.elementToBeClickable(By.xpath(xpath)));