【发布时间】:2013-06-14 15:45:26
【问题描述】:
我正在用 c# 编写集成测试,当我在对话框中的某些元素上使用 click() 方法时,什么也没有发生,也没有错误。它将单击对话框内的某些元素,但不会单击其他元素。我想如果它没有正确选择它们,那么它会抛出异常,但它运行顺利并说测试通过了,即使它从未真正点击过按钮。该对话框是一个 iframe。
我认为它可能试图单击尚未显示或未启用的按钮,因此我在 click() 调用之前添加了此按钮:
_driver.SwitchTo().Frame(_frameElement);
_wait.Until(d =>
{
var shippingInfoButton = d.FindElement(By.CssSelector("input[title ='Info']"));
return shippingInfoButton.Displayed && shippingInfoButton.Enabled;
});
var infoButton = _driver.FindElement(By.CssSelector("input[title ='Info']"));
ScrollToElement(infoButton);
infoButton.Click();
再次运行,没有抛出异常,所以我假设它已经找到了元素并且它被显示和启用。
如果您需要更多信息,请告诉我。谢谢
【问题讨论】:
-
你在哪里点击?据我所知,您只找到了元素?
-
该行代码的正下方。
-
我看到你更新了你的问题。
-
是的,我使用相同的代码块单击同一 _frameElement 中的取消按钮,它工作正常,无法弄清楚为什么它会单击它而不是这个。
-
我通过使用 javascript click 方法而不是 selenium chrome 驱动程序 .click() 找到了一个临时解决方案,如果你们中的任何人知道为什么会这样并且我不想使用 selenium 方法学习。谢谢。我会在几个小时后发布我的解决方案作为答案。
标签: c# selenium integration-testing