【发布时间】:2021-11-12 06:20:51
【问题描述】:
我有一个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 秒。
感谢您的帮助!
问候
【问题讨论】:
标签: selenium xpath appium ignore-case