【问题标题】:How to download a file with phantomJS using Robot Framework?如何使用机器人框架下载带有 phantomJS 的文件?
【发布时间】:2017-11-30 02:55:36
【问题描述】:

我正在使用带有 PhantomJS(无头浏览器)的 Robot Framework,并且想要下载一个文件。但是 PhantomJS 没有任何想要的功能或选项来设置偏好,就像我们在 Chrome 中所做的那样。寻找使用 PhantomJS 和 Robot Framework 下载 CSV 文件的任何建议或其他选项。

【问题讨论】:

  • 你有什么理由更喜欢 PhantomJS 而不是 Chrome 来执行无头浏览器?从 Chrome 版本 59 开始,支持 Mac 和 Linux,并且在版本 60 中添加了 Windows。当前版本为 62。
  • 我从未尝试过 chrome 无头浏览器,使用 PhantomJS,因为我必须在服务器上运行此代码。谢谢

标签: phantomjs robotframework


【解决方案1】:

正如您强调的那样,下载文件不是问题。下面是一个以 Headless 模式启动 Chrome 的机器人脚本示例。

*** Settings ***
Library    Selenium2Library

Suite Teardown    Close All Browsers

*** Test Cases ***
Headless Chrome - Open Browser
    ${chrome options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
    ${prefs}    Create Dictionary   credentials_enable_service=${false}                 # Verberg de sla wachtwoord op pop-up

    Call Method    ${chrome_options}    add_experimental_option    prefs    ${prefs}
    Call Method    ${chrome options}    add_argument    start-maximized                 # Open de browser in gemaximaliseerd.
    Call Method    ${chrome_options}    add_argument    --headless
    Call Method    ${chrome_options}    add_argument    --disable-gpu    
    Call Method    ${chrome_options}    add_argument    --window-size\=1920,1080
    Create Webdriver    Chrome    chrome_options=${chrome options}

    Go To    http://cnn.com

    Capture Page Screenshot

如果您想在网格环境中以无头模式运行,请使用以下示例:

*** Settings ***
Library    Selenium2Library

Suite Teardown    Close All Browsers

*** Test Cases ***
Headless Chrome - Create Webdriver2
    ${chrome options} =     Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
    Call Method    ${chrome_options}   add_argument   --window-size\=1920,1080
    Call Method    ${chrome options}   add_argument   --start-maximized
    Call Method    ${chrome options}   add_argument   --headless
    Call Method    ${chrome options}   add_argument   --disable-gpu
    ${options}=     Call Method     ${chrome_options}    to_capabilities      

    Create Webdriver    Remote   command_executor=http://localhost:4444/wd/hub    desired_capabilities=${options}

    Go to     http://cnn.com

    Capture Page Screenshot 

【讨论】:

  • 当我尝试你的代码(第一个变体)时,它给了我一个unrecognized Chrome version: HeadlessChrome/62.0.3202.94 错误。
  • 没关系,问题出在 ChromeDriver 上。 2.29 及以下不支持无头 chrome。
猜你喜欢
  • 2016-05-19
  • 1970-01-01
  • 2018-07-02
  • 1970-01-01
  • 2017-10-24
  • 2020-08-30
  • 2016-02-02
  • 2022-01-24
  • 1970-01-01
相关资源
最近更新 更多