当前位置: 首页 > 面试题库 >

如何避免在Selenium Click()上使用MouseOver

狄心水
2023-03-14
问题内容

在我的一个Selenium测试案例中,我有一个问题,我不想拥有MouseOver效果。这是我的工作:

  1. 点击“登录”按钮(页面右上方)
  2. 等待页面加载
  3. 单击搜索结果中的“购买”按钮(页面右中角)。

问题是,在“登录”和“购买”之间的中间存在一个带有MouseOver效果的“购物篮”链接。因此,当我在“登录”按钮上调用Click(),然后在“购买”按钮上调用时,我会触发MouseOver,这将打开购物车的一个小预览,这会将“购买”按钮隐藏在其后面。

这适用于Firefox和MSIE。在Chrome浏览器中,我没有这种效果。

有人知道吗?


问题答案:

我仍然不知道真正的解决方案,但是这是我正在使用的肮脏解决方法:

public static void Click(this IWebElement element, TestTarget target)
{
    if (target.IsInternetExplorer)
    {
        var actions = new Actions(target.Driver);
        actions.MoveToElement(element).Perform();
        Thread.Sleep(500); // wait for the mouseover popup to appear
        element.SendKeys(Keys.Escape); // to close the popup (if any)
        actions.MoveToElement(element).DoubleClick().Perform(); // simple click is sometimes not enough in IE
    }
    else
    {
        element.Click();
    }
}


 类似资料:
  • 我听说过很多关于在Excel VBA中使用的憎恶是可以理解的,但我不确定如何避免使用它。我发现,如果我能够使用变量而不是函数,那么我的代码将更加可重用。但是,如果不使用,我不确定如何引用东西(如等)。 我已经找到了这篇关于范围的文章和这个关于不使用select的好处的例子,但是我找不到任何关于如何使用的东西。

  • 问题内容: 这看起来很丑。可选选项的优点在这里完全消失了。我读到应该使用或代替。但是,如果我更换每个吸气剂,真的有好处吗? 与 您知道这里的一些常见或最佳做法吗? 问题答案: 您可以使用 关键是仅在可选函数不为空时才评估映射函数,否则结果将保留为空。如果可选为空,将返回。

  • 问题内容: 建议在HTML页面中使用表格(现在已经有了CSS)? 表格有什么用途?表具有哪些CSS所没有的功能? 问题答案: 一点都不。但是将表格用于表格数据。只是不要将它们用于一般布局。 但是,如果您显示表格数据(例如结果或什至是表格),请继续使用表格!

  • 从我的main开始,我将启动两个线程,称为producer和consumer。两者都包含循环。生产者循环是UDP服务器,因此不需要Hibernate。我的问题出在消费者方面。使用者循环将对象从链接队列中移除,并将其传递给一个函数进行进一步处理。根据研究,在循环中使用线程Hibernate不是一个好的实践,因为有时O/S在设定时间结束时不会释放。如果我删除线程Hibernate,当应用程序是理想的,

  • 问题内容: 以下代码运行了1个小时,然后关闭: 当我重新运行同一件事时,它失败了: 大约需要3至4分钟才能再次成功执行。关闭后如何使它立即工作? 跟进: 问题答案: 您会看到setReuseAddress(true)的调用为时已晚,即在绑定引发异常之后。 您可以通过三个步骤创建一个未绑定的ServerSocket,使其可重用,然后将其绑定。

  • 问题内容: 我不知道如何在不使用或的情况下有效解决以下问题: 当一个元素发生故障时,如何恢复堆不变式? 换句话说,更新中至,并保持工作。您可以假设堆中只有一个。功能定义如下: 这是我的真实情况,如果您有兴趣请阅读。 您可以想象它是一个小的自动完成系统。我需要计算单词的频率,并保持前k个最大数量的单词,这些单词随时准备输出。所以我用在这里。当一个单词计数++时,如果它在堆中,我需要对其进行更新。 所