getautomaapp/swiftwebdriver
> [!NOTE]
Getting Started
Adding the dependency
Add the following entry in your Package.swift to start using SwiftWebDriver:
.package(url: "https://github.com/GetAutomaApp/SwiftWebDriver.git", branch: "master")and add dependency to your target:
.target(name: "MyApp", dependencies: [.product(name: "SwiftWebDriver", package: "SwiftWebDriver")]),
Testing in Docker
docker-compose build // build image
docker-compose up -d // Run httpd and chromedriver
docker-compose run test // Run Tests in DockerTesting on Host Machine
docker compose up selenium httpd -d- Run tests via test runner /
swift test
Example
Start and Stop
let chromeOption = ChromeOptions(
args: [
Args(.headless),
]
)
// create webdriver object
// default webdriver url is http://localhost:4444
// if you need to change webdriver url, use `driverURL` parameter.
let driver = WebDriver(
driver: ChromeDriver(
browserObject: chromeOption
)
)
//create session
let sessionId = try await driver.start()
//stop session
try await driver.stop()Find Elements
Use Element Selector
// find element by class name
let classText = try await driver.findElement(.css(.class("classElement")))
// find element by id name
let idElement = try await driver.findElement(.css(.id("idElement")))
// find element by name parameter
let nameElement = try await driver.findElement(.css(.name("nameElement")))Use XPath
let element = try await driver.findElement(.xpath("//*[@id=\"inParentSingleElement\"]"))Use Link Text
let element = try await driver.findElement(.linkText("go to next page"))Use PartialLink
let element = try await driver.findElement(.partialLinkText("go"))Use Find Elements Method
Both Selectors support the findElements Method. findElements method return Elements, such as Array<Element>.
Get Element Value
Element.text method return value.
let text = try await driver
.findElement(.css(.id("myValue")))
.text()Element Chain Method
Elements and Elements can use chain methods to narrow down the elements
let element = try await driver
.findElement(.css(.id("parent"))
.findElement(.css(.id("child")))
.text()Package Metadata
Repository: getautomaapp/swiftwebdriver
Default branch: master
README: README.md