Skip to content

Commit 6013367

Browse files
fix(ChromeDriver,ChromeDriverDragAndDropIntegrationTests): fixed drag and drop chromedriver method; method throws an error when trying draggable attribute not set
1 parent 60cf633 commit 6013367

File tree

3 files changed

+17
-26
lines changed

3 files changed

+17
-26
lines changed

Sources/SwiftWebDriver/API/Request/Elements/PostElementDragAndDropRequest.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,10 @@ internal struct PostElementDragAndDropRequest: RequestType {
3636
let origin = WebDriverElementOrigin(element: elementId)
3737
let dragToOrigin = WebDriverElementOrigin(element: toElementId)
3838

39-
// let sourceCenterX = Int(elementRect.width / 2)
40-
// let sourceCenterY = Int(elementRect.height / 2)
41-
//
4239
let targetCenterX = Int(targetElementRect.width / 2)
4340
let targetCenterY = Int(targetElementRect.height / 2)
4441

4542
let pointerActions = [
46-
// PointerAction(type: "pointerMove", origin: origin, x: sourceCenterX, y: sourceCenterY),
4743
PointerAction(type: "pointerMove", origin: origin, x: 0, y: 0),
4844
PointerAction(type: "pointerDown", button: 0),
4945
PointerAction(type: "pause", duration: 100),

Sources/SwiftWebDriver/WebDrivers/Chrome/ChromeDriverElementDragAndDropper.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,11 @@ internal struct ChromeDriverElementDragAndDropper {
5858
}
5959

6060
private func isHTML5Draggable() async throws -> Bool {
61-
let draggableValue = try await source.attribute(name: "draggable")
61+
guard
62+
let draggableValue = try? await source.attribute(name: "draggable")
63+
else {
64+
return false
65+
}
6266
return draggableValue.lowercased() == "true"
6367
}
6468
}

Tests/SwiftWebDriverIntegrationTests/ChromeDriver/Element/ChromeDriverDragAndDropIntegrationTests.swift

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,19 @@ import Testing
88

99
@Suite("Chrome Driver Drag and Drop Integration Tests", .serialized)
1010
internal class ChromeDriverDragAndDropIntegrationTests: ChromeDriverTest {
11-
@Test("Drag Element To Another")
12-
func dragAndDropElementToAnother() async throws {
11+
@Test("Drag Element To Another (JavaScript)")
12+
func dragAndDropElementToAnotherWithDraggableElement() async throws {
1313
page = "dragTarget.html"
14+
try await dragAndDrop()
15+
}
16+
17+
@Test("Drag Element To Another (WebDriver Actions API)")
18+
func dragAndDropElementToAnother() async throws {
19+
page = "dragBox.html"
20+
try await dragAndDrop()
21+
}
22+
23+
private func dragAndDrop() async throws {
1424
try await driver.navigateTo(urlString: testPageURL.absoluteString)
1525

1626
let sourceElement = try await driver.findElement(.css(.id("source")))
@@ -24,24 +34,5 @@ internal class ChromeDriverDragAndDropIntegrationTests: ChromeDriverTest {
2434
#expect(targetElementText == "DROPPED!")
2535
}
2636

27-
@Test("Set Property")
28-
func setProperty() async throws {
29-
page = "elementHandleTestPage.html"
30-
try await driver.navigateTo(urlString: testPageURL.absoluteString)
31-
let element = try await driver.findElement(.css(.id("setproperty")))
32-
let newPropertyValue = "element new inner text"
33-
34-
try await driver.setProperty(element: element, propertyName: "innerText", newValue: newPropertyValue)
35-
guard
36-
let elementInnerTextValue = try await driver.getProperty(element: element, propertyName: "innerText").value?
37-
.stringValue
38-
else {
39-
#expect(Bool(false), "Could not convert element innerText value to string value")
40-
return
41-
}
42-
43-
#expect(newPropertyValue == elementInnerTextValue)
44-
}
45-
4637
deinit {}
4738
}

0 commit comments

Comments
 (0)