如何从 IWebElement 和 By 获取定位器值?

问题描述 投票:0回答:2

我想寻求一些帮助。也许我的问题有点愚蠢,但经过几次搜索后我不知道答案。这可能是因为大多数谷歌搜索者想要知道的信息与我相反。 :)

我有一个 IWebElement,它是使用 WebDriver 和 C# 通过正常方式创建的。

String locator = "someXpathLocator";    
IWebElement elem = webDriver.FindElement(By.xPath(locator));

稍后,在测试脚本的另一部分,我想使用 locator 值并对其进行一些操作,但在那里我只有 WebElement。由于事实上不可能 - 或者我不知道如何 - 从 WebElement 对象取回定位器值,我必须以某种方式提供定位器值。这使得代码变得更加困难。

那么,如果我有一个网络元素,如何才能取回定位器值?

c# selenium webdriver selenium-webdriver
2个回答
0
投票

不幸的是,您所问的是不可能的。 Webdriver 团队决定将其设为私有变量。

但是,我使用的解决方案是对存储对 By 的引用的 WebElement 使用装饰器模式。 我不懂 C#,所以我无法帮助您举例,抱歉。


0
投票

我知道这已经很晚了,但是你能做一些类似的事情吗

按定位器 = By.XPath("someXpathLocator");

IWebElement elem = driver.FindElement(定位器);

然后当你在测试中只需要定位器时,你可以只调用 locator 而不是 elem 吗?

© www.soinside.com 2019 - 2024. All rights reserved.