javascript - iOS Safari上的`缓存中不存在元素`错误
问题描述
我有一个用 JavaScript 编写的测试,使用 WebdriverIO 和 Mocha 库。测试的想法是检查网站中的元素是否按预期运行。
以下是测试用例的摘录:
describe('My test', () => {
beforeEach( async () => {
await browser.url('my_site_url');
it ('The button should be clickable', async () => {
let button = await $('#button-name');
await button.click(); //test fails here on iOS Safari
... // the rest of the code
});
it ... //other test cases
});
此测试在 iOS Safari 上失败并引发此错误的问题:
Element does not exist in cache
它适用于 Android Chrome、Mac OS Safari、Windows Firefox 和 Windows Chrome。
我还使用 BrowserStack 工具在不同的设备上运行这些测试。该工具提供了测试执行情况的可视化日志。从日志中,我可以直观地看到按钮元素确实正确显示。另外,我通过检查按钮元素手动重新测试了很多次,并且可以确认按钮的名称是正确的。
这里可能是什么问题?从互联网上的答案来看,我怀疑我的元素可能已经过时了,但我不知道这是怎么可能的,因为我使用await
它直到我点击它。
解决方案
推荐阅读
- go - 用结构解组复杂的 JSON 广告
- c# - MassTransit:使用 UseDelayedExchangeMessageScheduler 时,使用 ScheduleSend 发送的消息最终进入跳过的队列
- c - 为什么第二个 for 循环没有执行?
- python - 有没有办法结束(终止)python中的线程?
- azure - Spring Boot Azure AD - AzureADGraphClient.aquireTokenForGraphApi 抛出错误:无法为客户端获取代表令牌
- android - 有谁知道如何像这样更改回收器视图滚动条的宽度/长度?
- java - 如何使用 Java 从外部网页获取 XMLHTTPRequest 文件?
- java - 当surefire内存不足时,maven多模块测试执行失败
- c# - 在路线中使用文化参数来改变文化
- php - Laravel 一个共享数据库和多个数据库