【问题标题】:On IOS, element is "visible" and being clicked even though it is not displayed在 IOS 上,元素是“可见的”并被点击,即使它没有显示
【发布时间】:2021-07-06 10:44:15
【问题描述】:

我在 BrowserStack 上运行 selenium 测试时遇到问题。这个测试应该失败。 它在 Android 上确实失败了,但在 iOS 上通过了,我就是不明白如何。

很遗憾,我不允许分享 html 代码,但我可以分享我的代码。我正在调用这个方法:

public void clickElement() {
        driver.findElement(Element1).click();
    }

基本上,我正在尝试点击移动设备上的隐藏按钮。所以这个测试应该失败。 在 Android 上,我的测试按预期失败。按钮不显示所以一切都很好。

但在 iOS(我可以在 BrowserStack 上找到的所有设备、移动设备和平板电脑)上,这个按钮虽然隐藏,但无论如何都会被点击。

我不明白这怎么可能。 有谁知道这个问题来自哪里?它与iOS或BrowserStack有关吗?还是两者兼有?

任何帮助将不胜感激 谢谢

【问题讨论】:

    标签: ios selenium browserstack remotewebdriver


    【解决方案1】:

    这里可能有两个原因:

    1. 不透明度设置为 0 - 如果是这种情况,该元素可能对我们不可见,但仍未隐藏。只有隐藏元素才会停止接收 UITouch 事件。

    2. 视图后面可以有视图 - 因此,如果您隐藏了第一个视图并且其他视图在第一个视图后面,它们仍将继续响应 UITouch 事件。

    因此,为了确保您的情况发生了什么,您必须确保 waitForVisibilityOf 方法实际上也隐藏了 iOS 的视图。

    【讨论】:

    • 嗨 Manish,我实际上简化了上面的代码。此代码在 Android 上失败(它应该)。但在 iOS 上,点击了“Element1”。没有不透明度,“Element1”实际上是原本隐藏的侧边栏的一部分。要显示它(因此也显示“Element1”),您首先需要单击另一个按钮。
    猜你喜欢
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多