Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. WKZombie

WKZombie

MITSwift1.1.1

A Swift headless browser framework for iOS/OSX to automate website navigation, data collection, and testing without a UI.

GitHubGitHub
1.2k stars100 forks0 contributors

What is WKZombie?

WKZombie is a Swift framework that provides a headless web browser for iOS and macOS applications. It enables developers to programmatically navigate websites, collect data, and automate interactions without a graphical user interface, using WebKit's WKWebView for rendering and HTML parsing. This is particularly useful for web scraping, automated testing, and manipulating web content using JavaScript.

Target Audience

iOS and macOS developers who need to automate web interactions, such as those building apps for web scraping, automated testing, or data collection without relying on APIs. It is also suitable for developers interested in functional programming approaches in Swift.

Value Proposition

Developers choose WKZombie for its functional programming style with action chaining using operators like `>>>` and `===`, making asynchronous web automation code compact and readable. It offers a headless browser solution integrated directly into Swift apps, supporting features like JavaScript execution, snapshot support for visual testing, and authentication handling.

Overview

WKZombie is a Swift framework for iOS/OSX to navigate within websites and collect data without the need of User Interface or API, also known as Headless browser. It can be used to run automated tests / snapshots and manipulate websites using Javascript.

Use Cases

Best For

  • Automating web interactions in iOS/macOS apps, such as logging into websites and submitting forms programmatically.
  • Web scraping and data collection from websites that lack APIs, using HTML parsing and JavaScript execution.
  • Running automated tests on web content, including taking snapshots for visual testing on iOS.
  • Manipulating web pages dynamically through JavaScript within a native Swift application.
  • Handling authentication challenges like Basic Auth and self-signed certificates in automated web sessions.
  • Building command-line tools for web automation on macOS using Swift.

Not Ideal For

  • Cross-platform projects targeting Android, Windows, or web environments
  • High-performance, large-scale web scraping requiring lightweight, concurrent processes
  • Applications needing a visible browser UI for real-time user interactions
  • Teams without Swift expertise or unfamiliar with functional programming concepts

Pros & Cons

Pros

Functional Action Chaining

Uses operators like `>>>` and `===` for compact, readable asynchronous code, as shown in the README's automation examples that chain actions like open, click, and submit.

Native iOS/macOS Integration

Leverages WebKit's WKWebView for headless browsing within Swift apps, enabling features like snapshot support for visual testing on iOS and seamless app embedding.

JavaScript Execution Support

Allows running custom JavaScript to manipulate or extract data, demonstrated in README snippets for tasks like retrieving page titles or interacting with elements.

Authentication Handling

Supports challenges like Basic Auth and self-signed certificates via a configurable authenticationHandler, with code examples provided in the documentation.

Cons

Outdated HTML Parsing

Relies on hpple/libxml2 for parsing, which the TODOs section admits is not 'Swifty' and plans to replace, potentially limiting modern Swift compatibility.

WebKit Inherited Limitations

Struggles with iframe access, requiring a workaround swap function, and inherits WebKit's performance overhead, making it less suitable for heavy concurrent tasks.

Setup Complexity

Command-line usage requires specific build flags like `-Xcc -I/usr/include/libxml2`, and integration issues like Result type collisions with Alamofire add extra steps.

Frequently Asked Questions

Quick Stats

Stars1,181
Forks100
Contributors0
Open Issues23
Last commit5 years ago
CreatedSince 2015

Tags

#functional-programming#ios#osx#headless-browser#automated-testing#testing#web-automation#webkit#headless#web-scraping#swift#browser#macos

Built With

l
libxml2
S
Swift Package Manager
W
WebKit
C
Carthage
C
CocoaPods
S
Swift

Included in

iOS51.7kSwift26.0k
Auto-fetched 5 hours ago

Related Projects

NetNewsWireNetNewsWire

RSS reader for macOS and iOS.

Stars9,985
Forks689
Last commit3 days ago
SwiftSoupSwiftSoup

SwiftSoup: Pure Swift HTML Parser, with best of DOM, CSS, and jquery (Supports Linux, iOS, Mac, tvOS, watchOS)

Stars5,075
Forks383
Last commit1 month ago
KannaKanna

Kanna(鉋) is an XML/HTML parser for Swift.

Stars2,487
Forks221
Last commit2 months ago
FeedKitFeedKit

FeedKit is a Swift library for Reading and Generating RSS, Atom, and JSON feeds.

Stars1,324
Forks198
Last commit2 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub