Xcode UI 测试 - 如何在 WKWebView 中 tap() link?

Xcode UI Test - how to tap() link in WKWebView?

我正在尝试使用 UI 测试在 WKWebView 中点击 link。 link 定义如下:

<a data-toggle="tab" href="#haloLogin">
<img src=/Images/Halo_small.png">
</a>

我可以这样找到 link:

let haloLink = app.links.elementBoundByIndex(1) 

(索引 0 处还有一个 link)

这是我打印出来的结果 haloLink.debugDescription:

haloLink: Attributes: Link 0x1257094e0: traits: 146029019138, {{143.0, -392.0}, {32.0, 32.0}}

Element subtree:
→Link 0x1257094e0: traits: 146029019138, {{143.0, -392.0}, {32.0, 32.0}}
Image 0x125709cf0: traits: 146029019142, {{143.0, -392.0}, {32.0, 32.0}}

我试过使用

app.links["#haloLogin"] 

没有成功。

我的问题是我没有得到

haloLink.tap() 

上班。

欢迎提出任何建议!

通过包含的图像访问 link。在您的问题中,您的图片文件名为 Halo_small.png,因此您可以 tap() 使用:

let app = XCUIApplication()
app.images["Halo_small.png"].tap()

出于某种原因,我现在实际上得到了

let haloLink = app.links.elementBoundByIndex(1)
haloLink.tap()

上班!之前可能漏掉了什么。

如果wkwebview中的元素是这样的。

<a href="#">your link text</a>

那么下面是测试代码

app.links["your link text"].tap()

多看文章。 UI Testing Cheat Sheet and Examples

在带有属性文本的 UITextView 中 link 这对我有用:

XCUIApplication().links["your link text"].press(forDuration: 0.1)

tap() 没有触发 link.