日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

开发函数计算的正确姿势——运行 Selenium Java

發(fā)布時(shí)間:2025/3/20 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开发函数计算的正确姿势——运行 Selenium Java 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

首先介紹下在本文出現(xiàn)的幾個(gè)比較重要的概念:

函數(shù)計(jì)算(Function Compute): 函數(shù)計(jì)算是一個(gè)事件驅(qū)動(dòng)的服務(wù),通過(guò)函數(shù)計(jì)算,用戶(hù)無(wú)需管理服務(wù)器等運(yùn)行情況,只需編寫(xiě)代碼并上傳。函數(shù)計(jì)算準(zhǔn)備計(jì)算資源,并以彈性伸縮的方式運(yùn)行用戶(hù)代碼,而用戶(hù)只需根據(jù)實(shí)際代碼運(yùn)行所消耗的資源進(jìn)行付費(fèi)。函數(shù)計(jì)算更多信息參考。
Fun: Fun 是一個(gè)用于支持 Serverless 應(yīng)用部署的工具,能幫助您便捷地管理函數(shù)計(jì)算、API 網(wǎng)關(guān)、日志服務(wù)等資源。它通過(guò)一個(gè)資源配置文件(template.yml),協(xié)助您進(jìn)行開(kāi)發(fā)、構(gòu)建、部署操作。Fun 的更多文檔參考。

備注: 本文介紹的技巧需要 Fun 版本大于等于 2.10.2。

依賴(lài)工具

本項(xiàng)目是在 MacOS 下開(kāi)發(fā)的,涉及到的工具是平臺(tái)無(wú)關(guān)的,對(duì)于 Linux 和 Windows 桌面系統(tǒng)應(yīng)該也同樣適用。在開(kāi)始本例之前請(qǐng)確保如下工具已經(jīng)正確的安裝,更新到最新版本,并進(jìn)行正確的配置。

  • Docker
  • Fun
  • Fcli

Fun 和 Fcli 工具依賴(lài)于 docker 來(lái)模擬本地環(huán)境。

對(duì)于 MacOS 用戶(hù)可以使用 homebrew 進(jìn)行安裝:

brew cask install docker brew tap vangie/formula brew install fun brew install fcli

Windows 和 Linux 用戶(hù)安裝請(qǐng)參考:

  • https://github.com/aliyun/fun/blob/master/docs/usage/installation.md
  • https://github.com/aliyun/fcli/releases
  • 安裝好后,記得先執(zhí)行 fun config 初始化一下配置。

    注意, 如果你已經(jīng)安裝過(guò)了 fun,確保 fun 的版本在 2.10.2 以上。

    $ fun --version 2.10.1

    快速開(kāi)始

    初始化

    使用 fun init 命令可以快捷地將本模板項(xiàng)目初始化到本地。

    fun init vangie/selenium-java-example

    安裝依賴(lài)

    $ fun install ...

    本地測(cè)試

    測(cè)試代碼 ChromeDemo 的內(nèi)容為:

    public class ChromeDemo implements StreamRequestHandler {public void handleRequest(InputStream inputStream,OutputStream outputStream,Context context) throws IOException {System.setProperty("webdriver.chrome.driver", "/code/chromedriver");ChromeOptions options = new ChromeOptions();options.setBinary("/code/headless-chromium");options.addArguments("--disable-extensions"); // disabling extensionsoptions.addArguments("--disable-gpu"); // applicable to windows os onlyoptions.addArguments("--disable-dev-shm-usage"); // overcome limited resource problemsoptions.addArguments("--no-sandbox"); // Bypass OS security modeloptions.addArguments("--headless");WebDriver driver = new ChromeDriver(options);driver.get("https://ide.fc.aliyun.com");outputStream.write(("Page title is: " + driver.getTitle() + "\n").getBytes());driver.quit();}}

    本地運(yùn)行

    $ mvn package && fun local invoke selenium ... FC Invoke Start RequestId: 68c83b4c-b053-479c-9b0e-9503582ccb56 handle user request is com.aliyun.fc.selenium.ChromeDemo::handleRequest cache is null! Starting ChromeDriver 2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881) on port 20652 Only local connections are allowed. Mar 05, 2019 11:34:27 AM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: OSS Page title is: 云端集成開(kāi)發(fā)環(huán)境 FC Invoke End RequestId: 68c83b4c-b053-479c-9b0e-9503582ccb56RequestId: 68c83b4c-b053-479c-9b0e-9503582ccb56 Billed Duration: 5265 ms Memory Size: 1998 MB Max Memory Used: 240 MB

    部署

    $ mvn package && fun deploy

    執(zhí)行

    $ fcli function invoke -s chrome -f seleniumPage title is: 云端集成開(kāi)發(fā)環(huán)境

    關(guān)于文件尺寸

    由于 chromedriver 和 headless-chromium 壓縮后體積已經(jīng)非常接近 50MB,留給用戶(hù) Jar 的空間非常少,所以另外制作了一個(gè)高壓縮比版本,使用壓縮比更高的 brotli 算法進(jìn)行壓縮,壓縮后的大小為 32.7MB。然后在運(yùn)行時(shí)使用 initializer 進(jìn)行解壓,解壓耗時(shí)大約為 3.7 S。https://github.com/vangie/packed-selenium-java-example

    參考閱讀

  • https://github.com/smithclay/lambdium
  • https://medium.com/clog/running-selenium-and-headless-chrome-on-aws-lambda-fb350458e4df
  • 加入我們

    團(tuán)隊(duì)介紹

    阿里云函數(shù)服務(wù)是一個(gè)全新的,支持事件驅(qū)動(dòng)編程模式的計(jì)算服務(wù)。 他幫助用戶(hù)聚焦自身業(yè)務(wù)邏輯,以 Serverless的方式構(gòu)建應(yīng)用,快速的實(shí)現(xiàn)低成本,可擴(kuò)展,高可用的系統(tǒng),而無(wú)需考慮服務(wù)器等底層基礎(chǔ)設(shè)施的管理。 用戶(hù)能夠快速的創(chuàng)建原型,同樣的架構(gòu)能隨業(yè)務(wù)規(guī)模平滑伸縮。讓計(jì)算變得更高效,更經(jīng)濟(jì),更彈性,更可靠。無(wú)論小型創(chuàng)業(yè)公司,還是大型企業(yè),都受益其中。我們的團(tuán)隊(duì)正在迅速擴(kuò)張,求賢若渴。我們想尋找這樣的隊(duì)友:
    基本功扎實(shí)。既能閱讀論文追蹤業(yè)界趨勢(shì),又能快速編碼解決實(shí)際問(wèn)題。
    嚴(yán)謹(jǐn)?shù)?#xff0c;系統(tǒng)化的思維能力。既能整體考慮業(yè)務(wù)機(jī)會(huì),系統(tǒng)架構(gòu),運(yùn)維成本等諸多因素,又能掌控設(shè)計(jì)/開(kāi)發(fā)/測(cè)試/發(fā)布的完整流程,預(yù)判并控制風(fēng)險(xiǎn)。
    好奇心和使命感驅(qū)動(dòng)。樂(lè)于探索未知領(lǐng)域,不僅是夢(mèng)想家,也是踐行者。
    堅(jiān)韌、樂(lè)觀、自信。能在壓力和困難中看到機(jī)會(huì),讓工作充滿(mǎn)樂(lè)趣!
    如果您對(duì)云計(jì)算充滿(mǎn)熱情,想要構(gòu)建一個(gè)有影響力計(jì)算平臺(tái)和生態(tài)體系,請(qǐng)加入我們,和我們一起實(shí)現(xiàn)夢(mèng)想!

    職位描述

    構(gòu)建新一代 Serverless 計(jì)算平臺(tái),包括:

  • 設(shè)計(jì)和實(shí)現(xiàn)完整可擴(kuò)展的前端系統(tǒng),包括身份驗(yàn)證/權(quán)限管理,元數(shù)據(jù)管理,流量控制,計(jì)量計(jì)費(fèi),日志監(jiān)控等等
  • 設(shè)計(jì)和實(shí)現(xiàn)彈性可靠的后端系統(tǒng),包括資源調(diào)度,負(fù)載均衡,容錯(cuò)處理等等
  • 豐富易用的 SDK/Tools/CLI/控制臺(tái)
  • 用戶(hù)需求驅(qū)動(dòng),追蹤業(yè)界趨勢(shì),利用技術(shù)推動(dòng)業(yè)務(wù)的成長(zhǎng)
  • 職位要求

  • 算法/數(shù)據(jù)結(jié)構(gòu)/操作系統(tǒng)等基礎(chǔ)知識(shí)扎實(shí),優(yōu)秀的邏輯思維能力。
  • 至少掌握一門(mén)編程語(yǔ)言。例如 Java/Go/C/C#/C++。
  • 有大規(guī)模、高可用分布式系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)者優(yōu)先。
  • 有 Web/Mobile Backends/Microservice 開(kāi)發(fā)經(jīng)驗(yàn)者優(yōu)先。
  • 良好的溝通能力和團(tuán)隊(duì)合作精神,有一定的組織協(xié)調(diào)能力。
  • 本科及以上學(xué)歷
  • 3 年以上工作經(jīng)驗(yàn),通過(guò)“阿里巴巴編碼規(guī)范” 認(rèn)證的同學(xué)優(yōu)先錄取,認(rèn)證地址:https://edu.aliyun.com/certification/cldt02
  • 簡(jiǎn)歷提交

    yixian.dw AT alibaba-inc.com

    “阿里巴巴云原生技術(shù)圈關(guān)注微服務(wù)、Serverless、容器、Service Mesh 等技術(shù)領(lǐng)域、聚焦云原生流行技術(shù)趨勢(shì)、云原生大規(guī)模的落地實(shí)踐,做最懂云原生開(kāi)發(fā)者的技術(shù)圈。”

    總結(jié)

    以上是生活随笔為你收集整理的开发函数计算的正确姿势——运行 Selenium Java的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。