我正在用 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();
再次运行,没有抛出异常,所以我假设它已经找到了元素并且它被显示和启用。
如果您需要更多信息,请告诉我。谢谢