Что я должен делать, это пытаться перебрать все , чтобы выбрать значения и получить некоторые данные. Данные загружаются через AJAX, поэтому страница не перезагружается - данные в таблице просто меняются. Как вы можете видеть, я попытался использовать явное ожидание, но это не работает - значение select может быть «4», но информация в таблице все еще может принадлежать значению «3». Я хотел бы знать, как я могу быть уверен, что страница действительно обновлена?Как определить, полностью ли загружена страница в Selenium?
Есть несколько похожих вопросов, но я не нашел правильного решения.
for i in range(N):
try:
driver.find_element_by_xpath("//select[@id='search-type']/option[@value='%s']"%i).click()
driver.find_element_by_name("submit").click()
except:
print i
continue
elem = driver.find_element_by_id("my_id")
wait.until(lambda driver: driver.find_element_by_id('search-type').get_attribute("value")==str(i))
if no_results(get_bs_source(driver.page_source)):
print "No results %s"%i
if is_limited(get_bs_source(driver.page_source)):
print "LIMITED %s"%i
data+=get_links_from_current_page(driver)
Конечно, я могу использовать time.sleep (N), но это не так, как я хотел бы сделать это.
Что вызывает обновление страницы? Это клик или? Как только вы это выясните, найдите способ обнаружить изменения? Есть ли где-то сообщение, в котором говорится, что обновление сделано, есть ли изменение цвета и т. Д.? – JeffC
Можете ли вы объяснить, что страница действительно обновлена? Что это значит ** для вашего приложения **? Как вы можете сказать? – SiKing
@SiKing после нажатия браузера на какую-либо кнопку - данные страницы в таблице обновляются. Я вижу это, потому что изменения данных. Я думал, что есть способы проверить, есть ли какая-то сетевая активность или что-то в этом роде. –