【发布时间】:2020-02-02 09:41:30
【问题描述】:
我正在尝试创建一个脚本,我可以在其中检查该元素是否显示在 UWP 应用程序上。我有一个方法可以检查元素是显示还是不显示..
如果元素实际显示并且我调用了“IsElementDisplayed”,测试似乎工作正常并继续执行测试。但是当元素真的没有显示并且我调用了“IsElementDisplayed”时,它没有返回错误的布尔值..但它只是停止测试执行并说,“没有找到这样的给定参数”......
请检查我的示例代码....
我有一个包含我的定位器并返回 WindowsElement 实例的类:
protected WindowsElement Id(string id)
{
return Driver.FindElementById(id);
}
protected WindowsElement XPath(string xpath)
{
return Driver.FindElementByXPath(xpath);
}
protected WindowsElement Name(string name)
{
return Driver.FindElementByName(name);
}
protected WindowsElement AccessibilityId(string id)
{
return Driver.FindElementByAccessibilityId(id);
}
然后我有 Page 类,其中包含我的元素的属性.. 下面的示例代码:
public WindowsElement SaveObligation_Btn => this.AccessibilityId("OBLGTN_saveObligation_btn");
public WindowsElement CancelObligation_Btn => this.AccessibilityId("OBLGTN_CancelObligation_btn");
public WindowsElement ObligationAdd_Btn => this.AccessibilityId("SMMRY_AddObligation_btn");
最后我有一个 testhelper 类,其中包含以下方法:
public bool IsNotDisplayed(WindowsElement element)
{
try
{
Assert.IsFalse(element.Displayed, $"Element: {element} is not displayed on the page!");
return false;
}
catch (Exception)
{
return true;
}
}
但是当我尝试调用“IsNotDisplayed”方法以在它捕获到任何异常时返回 false 时......,我的测试执行停止并且我将遇到一个指向我的 Locator 类的错误并说,“元素不是用给定的参数找到“...
我希望方法“isNotDisplayed”应该返回 false 布尔值,所以我可以验证元素是否可见。
【问题讨论】:
标签: c# selenium testing appium winappdriver