(
driver, selector, timeout=settings.LARGE_TIMEOUT
)
| 355 | |
| 356 | |
| 357 | def wait_for_css_query_selector( |
| 358 | driver, selector, timeout=settings.LARGE_TIMEOUT |
| 359 | ): |
| 360 | element = None |
| 361 | selector = escape_quotes_if_needed(selector) |
| 362 | selector = remove_extra_slashes(selector) |
| 363 | selector = optimize_selector(selector) |
| 364 | script = """return document.querySelector('%s');""" % selector |
| 365 | start_ms = time.time() * 1000.0 |
| 366 | stop_ms = start_ms + (timeout * 1000.0) |
| 367 | for x in range(int(timeout * 10)): |
| 368 | try: |
| 369 | element = execute_script(driver, script) |
| 370 | if element: |
| 371 | return element |
| 372 | except Exception: |
| 373 | element = None |
| 374 | if not element: |
| 375 | now_ms = time.time() * 1000.0 |
| 376 | if now_ms >= stop_ms: |
| 377 | break |
| 378 | time.sleep(0.1) |
| 379 | raise NoSuchElementException( |
| 380 | "Element {%s} was not present after %s seconds!" % (selector, timeout) |
| 381 | ) |
| 382 | |
| 383 | |
| 384 | def is_valid_by(by): |
nothing calls this directly
no test coverage detected