我想寻求一些帮助。也许我的问题有点愚蠢,但经过几次搜索后我不知道答案。这可能是因为大多数谷歌搜索者想要知道的信息与我相反。 :)
我有一个 IWebElement,它是使用 WebDriver 和 C# 通过正常方式创建的。
String locator = "someXpathLocator";
IWebElement elem = webDriver.FindElement(By.xPath(locator));
稍后,在测试脚本的另一部分,我想使用 locator 值并对其进行一些操作,但在那里我只有 WebElement。由于事实上不可能 - 或者我不知道如何 - 从 WebElement 对象取回定位器值,我必须以某种方式提供定位器值。这使得代码变得更加困难。
那么,如果我有一个网络元素,如何才能取回定位器值?
不幸的是,您所问的是不可能的。 Webdriver 团队决定将其设为私有变量。
但是,我使用的解决方案是对存储对 By 的引用的 WebElement 使用装饰器模式。 我不懂 C#,所以我无法帮助您举例,抱歉。
我知道这已经很晚了,但是你能做一些类似的事情吗
按定位器 = By.XPath("someXpathLocator");
IWebElement elem = driver.FindElement(定位器);
然后当你在测试中只需要定位器时,你可以只调用 locator 而不是 elem 吗?