小编dor*_*ino的帖子

Python 3.6.2/Selenium 2.0/AJAX - 如何等待脚本结束服务器请求

因此,我有一个 Web 应用程序需要收集信息并构建一些报告并运行一些基本的数据分析。

问题是我完全是 HTML、Ajax(异步 JavaScript 和 XML)、Python 和 Selenium 的新手。

到目前为止,我收集的是:

  1. Ajax 的本质是执行异步 Web 浏览器活动,在我的情况下,发送服务器请求以推/拉一些数据
  2. Selenium 处理执行以下Wait操作的异步事件:
    • time.sleep('time in ms') # 使用时间库。所以不是真的硒;
    • 显式等待:您定义在代码中继续进行之前等待某个条件发生;

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC

    delay_time = 10 # how much time until raises NoExeption in Selenium    

    driver = webdriver.Firefox()
    driver.get("http://somedomain/url_that_delays_loading")

    webDriverWait(driver,delay_time)\
    .until(EC.presence_of_element_located((By.ID, 'IdOfMyElement')))`
Run Code Online (Sandbox Code Playgroud)

EC 代表预期条件,表示为:

标题_是;

标题_包含;

Presence_of_element_located

visibility_of_element_located

可见性_of

Presence_of_all_elements_located

text_to_be_present_in_element

text_to_be_present_in_element_value

frame_to_be_available_and_switch_to_it

invisibility_of_element_located

element_to_be_clickable

staleness_of

element_to_be_selected

element_located_to_be_selected

element_selection_state_to_be …

python ajax selenium

5
推荐指数
1
解决办法
1839
查看次数

标签 统计

ajax ×1

python ×1

selenium ×1