Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Swiftで雑にSelenium! [Swift -> PythonKit -> Selenium]

More than 1 year has passed since last update.

ハイライト

Swift で PythonKit を利用して Selenium を動かします。

対象の読者

  • Swift Package Manager の利用経験がある方
  • Selenium がなんとなく分かる方
  • Python を雰囲気で書ける方

向けに雑にご紹介致します。

PythonKit の導入

PythonKitのREADME に従い,Swift Package Manager を用いて導入します。

Package.swift
.package(url: "https://github.com/pvieito/PythonKit.git", .branch("master")),

Usage の通り,runした際にバージョンが出力されれば導入完了です。

main.swift
import PythonKit

let sys = try Python.import("sys")

print("Python \(sys.version_info.major).\(sys.version_info.minor)")
print("Python Version: \(sys.version)")
print("Python Encoding: \(sys.getdefaultencoding().upper())")

Selenium の導入

pipbrew を用いてインストールします。WebDriver は ChromeDriverにしました。何でも良いです。

$ pip install selenium
$ brew cask install chromedriver

Selenium チュートリアルを Swift から書く

ChromeDriver の Python チュートリアルを Swift で書き直してみましょう。こんな感じになります。

main.swift
import PythonKit

let time = Python.import("time")
let webdriver = Python.import("selenium.webdriver")

let driver = webdriver.Chrome("/usr/local/bin/chromedriver")
driver.get("https://www.google.com/")
time.sleep(5)
let searchBox = driver.find_element_by_name("q")
searchBox.send_keys("ChromeDriver")
searchBox.submit()
time.sleep(5)
driver.quit()

まとめ

Swift で雑に Selenium してみました。いかがでしたか?

PythonKit のチュートリアルにはなったかもしれません。

一方で,PythonKit 経由での import のため,Xcode で書いても残念ながら補完は効きません。エラーは出力されるので雑に雰囲気で書きましょう。それが本記事のオチです。

References

YutoMizutani
iOS Tech Lead。RxSwiftが好き。設計が好き。
https://github.com/YutoMizutani
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away