我试图断言我正在测试的GUI上存在某个Text元素。我可以使用Inspect看到该元素,但是在运行代码时,找不到该元素。有趣的是,我不能使用“监视光标”来选择元素,只能从树中选择它。这是“检查”窗口的图像,其中显示了我要声明的元素: Inspect Image
我尝试断言Parent元素在那里,所以我知道我的XPath可以。我尝试通过将/ *附加到路径中来查找所有子项,这似乎返回null。
这里是我正在尝试的部分测试代码:
string xpath_ABLRegion_child = "//*/Custom[@ClassName=\"D3NodeOverview\"]/Text[9]"]";
var WinElem_ABLRegion_child = desktopSession.FindElementByAbsoluteXPath(xpath_ABLRegion_child);
Assert.IsTrue(desktopSession.FindElementByAbsoluteXPath(xpath_ABLRegion_child"]").Displayed);
Console.WriteLine($"Text of WinElem_ABLRegion_child is {WinElem_ABLRegion_child.Text}");
我期望测试通过,因为显示WinElem_ABLRegion_child
。但是,我收到一个找不到该元素的错误。
请让我知道我是否可以分享更多信息以帮助您。
答案 0 :(得分:0)
您可以尝试这个。...
fyi-您的xpath将非常脆弱。你能减少一点吗?
使用C#-方法
public static bool IsElementPresent_byXpath(string xpath)
{
bool result;
try { result = Driver.FindElement(By.XPath(xpath)).Displayed; }
catch (NoSuchElementException) { return false; }
catch (StaleElementReferenceException) { return false; }
return result;
}
致电
bool ele = Browser.IsElementPresent_byXpath("your/long/xpath");
Assert.IsTrue(ele);
答案 1 :(得分:0)
我注意到您要查找的元素是另一个窗口的子级。您是否偶然分配了父母的所有权? (即所有者=实施时此)。 如果是这样,WinAppDriver似乎对那段代码是盲目的。参见ticket。