python selenium等待页面加载

Gra*_*non 6 python selenium

我编写了一个从页面获取数据的脚本,但有时页面需要时间来加载,因此当它将html拉入汤对象时,它会拉动任何内容,因为页面仍然需要完成.

我编写了以下代码来等待页面完成.

def scrape_page(url):
     browser.get(url)    
     try:
        WebDriverWait(browser, 10).until(EC.presence_of_element_located(browser.find_element_by_id ("selection-box")))
        #Extract Source Code 
        html = browser.page_source;
        soup = BeautifulSoup(html)
Run Code Online (Sandbox Code Playgroud)

有用

但是当我调用该函数时,我收到以下错误;

TypeError: find_element() argument after * must be a sequence, not WebElement
Run Code Online (Sandbox Code Playgroud)

WKP*_*lus 9

我想你应该这样使用presence_of_element_located:

element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )
Run Code Online (Sandbox Code Playgroud)

如手册中所述.

  • @GrantMcKinnonG在使用之前导入`By`:`from selenium.webdriver.common.by import By (4认同)