代码之家  ›  专栏  ›  技术社区  ›  Rhys

python selenium-单击按钮并获取页面源代码

  •  1
  • Rhys  · 技术社区  · 6 年前

    我当前单击一个按钮进入一个新窗口:

    browser.execute_script("arguments[0].value = 'test';", browser.find_element_by_xpath('//*[@id="email-signup-email-address"]'))
    input_button = browser.find_element_by_xpath('//*[@id="submittracking"]')
    browser.execute_script('arguments[0].target="_blank";', input_button.find_element_by_xpath('./ancestor::form'))
    browser.execute_script('arguments[0].click();', input_button)
    

    但必须 time.sleep(10) 问前 browser.page_source 否则页面无法完全加载

    其他文章/帖子建议使用硒 explicit wait 但这要求提供一个等待的元素,例如 visibilityOfAllElements() 或者一些特定的元素。我想买 所有 该页的源代码,不查找任何元素。

    我该怎么做 browser.page_源 正常工作(不点击新窗口时)?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Andersson    6 年前

    尝试等待页面加载( document.readyState == 'complete' )如下:

    from selenium.webdriver.support.ui import WebDriverWait
    
    WebDriverWait(browser, 20).until(lambda browser: browser.execute_script("return document.readyState;") == "complete")
    
        2
  •  0
  •   undetected Selenium    6 年前

    您可以对页面加载使用一些超时,如下所示:

    driver.set_page_load_timeout(30)