如果 webdriver 的 headless 等于 True,我如何执行 "scrollIntoView()" 函数?

How can I execute a "scrollIntoView()" function if the headless of the webdriver is equals to True?

我正在尝试执行将内部 div 向下滚动到某个元素的代码。这只适用于:

Options().headless = False

但是你们知道,这对整个事情的表现不利。

滚动的代码是:

element = driver1.find_element_by_xpath(reference)
driver1.execute_script("arguments[0].scrollIntoView();", element)

我怎样才能做类似的事情,但无头等于 True?

scrollIntoView() 必须以相同方式工作,而不管 Options().headless = TrueOptions().headless = False.

但是,在使用 模式时,您需要:

  • Maximize the browsing window

    options = Options()
    options.add_argument("--headless")
    options.add_argument("window-size=1400,600")
    
  • 另外归纳WebDriverWait for 如下:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "reference")))
    driver.execute_script("arguments[0].scrollIntoView();", element)
    

参考资料

您可以在以下位置找到相关的详细讨论: