LoginSignup
6
3

More than 3 years have passed since last update.

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

Posted at

ハイライト

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

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3