【问题标题】:Closing a popup box in Google Translate关闭谷歌翻译中的弹出框
【发布时间】:2014-02-26 12:47:42
【问题描述】:

我是 NUNIT 的新手,不知道如何关闭对话框。

我正在试验的网站是谷歌翻译。部分代码“点击”了“发送反馈链接”。

以下是我正在使用的功能:

public void CloseModalWindow(string className)
{
    WebController wPage = new WebController(driver);
    wPage.waitUntilExistsByXPath(className);
    wPage.waitUntilVisibleByXPath(className);
    IWebElement clickButtonXPATH = driver.FindElement(By.XPath(className));
    clickButtonXPATH.Click();
}

我试图模拟的基本逻辑是点击出现的 Google 反馈弹出窗口右上角的“X”。

请注意:

  • Web 驱动程序是 FireFox。
  • 我正在发送 XPath 值(直接使用 FireBug 源自 Google 翻译)/html/body/div[3]/div/span[2]
  • 我也尝试过使用 CSSSelector 方法而不是 XPATH,将值 span[class='modal-dialog-title'] 发送到函数中。

Nunit 将在没有任何错误的情况下完成,但弹出窗口并没有像我预期的那样关闭。

提前感谢您的意见和见解。

【问题讨论】:

  • 我不知道我是否正确。但是,如果您想模拟一个可以轻松关闭的框形窗口,请查看 JQuerry 的 FancyBox。简单,看起来很整洁。你可以用一些简单的脚本在你的 HTML 页面中实现它。
  • 克里斯托弗,感谢您的回复。我实际上是在尝试在 NUNIT 会话期间以编程方式关闭对话框。

标签: xpath popup css-selectors nunit


【解决方案1】:

从您的 XPath 中,我看到 "X" 不是原生可点击元素 - 就像 <a><button> 一样。我经历过在这些元素上调用Click() 并不是人们所期望的。相反,您可以尝试使用 action builder 功能来模拟一般的鼠标或键盘输入。替换

clickButtonXPATH.Click();

new Actions(driver).Click(clickButtonXPATH).Build().Perform();

【讨论】:

  • Dio,感谢您的回复并让我了解 Selenium 中的动作构建器类。我将更详细地研究课程。我尝试了多种变体,但仍然无法关闭弹出框。我已经尝试了上面的代码(通过将 Actions 实例化为一个名为 builder 的对象稍作修改),并尝试使用 builder.MoveToElement.(clickButtonXPATH).click().build().perform();。你有什么其他的建议?再次感谢您。
  • 很遗憾没有。暂时就这些了。
猜你喜欢
  • 2023-03-04
  • 2012-03-16
  • 1970-01-01
  • 1970-01-01
  • 2016-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多