Вы можете использовать «ждать». Согласно этой ссылке , Selenium имеет неявные и явные ожидания. В приведенном ниже примере используется явное ожидание.
Чтобы использовать явное ожидание, используйте WebDriverWait
и ExpectedConditions
. Я не уверен, какой язык вы используете, но вот пример на Python. При этом в блоке try-catch используется WebDriverWait
, что позволяет timeout
секундам соответствовать указанному ExpectedConditions
. По состоянию на июнь 2019 года условия доступны в:
Пример кода на python:
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
url = '/9308189/vypolnenie-skriptov-stranitsy-pered-izvlecheniem-ih-soderzhimogo'
target = (By.XPATH, "//div[@class='gravatar-wrapper-32']")
timeout = 20 # Allow max 20 seconds to find the target
browser = webdriver.Chrome()
browser.get(url)
try:
WebDriverWait(browser, timeout).until(EC.visibility_of_element_located(target))
except TimeoutException:
print("Timed out waiting for page to load")
browser.quit()
Важный бит находится между try
и except
, который вы должны изменить, чтобы использовать конкретное «ожидаемое условие», которое вас интересует.