我有一个C# selenium/Appium
项目需要在其中找到桌面应用程序窗口By.Xpath("").
这有效:
By.XPath("//*[@Name='ASDASD']");
但是,某些版本的应用程序的窗口名称为“ ASDasd
”,这导致Xpath
上面找不到窗口元素并且测试失败。
是否可以忽略@Name
属性的大小写,无论是"ASDASD", "ASDasd"
还是其他?
我确实尝试使用 XPath 翻译功能,但我找不到元素,我认为我做错了。
我尝试了什么:
By.XPath("//*[translate(name(),'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'asdasd']")
或者
By.XPath("//*[translate(name(),'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'asdasd']")
或者
By.XPath("//*[@Name='translate(.,'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'asdasd'']")
或者
By.XPath("//*[@Name='translate(asdasd,'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')']")
也许还有其他一些变化,但我无法让它工作。
某些示例的格式可能无效。
虽然其他似乎有效但找不到元素并且它会超时。
更新: 感谢您的帮助,这有效:
By.XPath("//*[translate(@Name, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')='asdasd']");
但是,它以某种方式为测试增加了 60 秒,它似乎在它寻找主窗口的地方之一停止了 60 秒。
谢谢您的帮助!
问候