2013-10-19 73 views
0

我想问一些帮助。也许我的问题有点愚蠢,但经过几次搜索,我不知道答案。这可能是因为谷歌的大多数搜索者想知道与我相反的结果。 :)如何从IWebElement和By?获取定位符值?

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

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

后,在测试脚本的另一部分,我想用定位值和操纵它一点点,但我将只有WebElement。由于这是不可能的 - 或者我不知道如何 - 从WebElement对象中取回定位器值,我必须以某种方式提供定位器值。它使代码更加困难。

那么,如果我有一个web元素比怎么可能找回定位器值?

+0

您需要提供定位器值,无论它是'id'或'classname'或'xpath'或'name'或'csspath' – Hemanth

+0

如果您想获取定位器的属性值,可以使用它'string value = By.xPath(“somexPathLocator”)。getAttribute(“你的标签名称)”。getValue();' – Hemanth

回答

0

你在问什么,不幸的是不可能的。 Webdriver团队决定将其变成一个私有变量。

但是,我使用的解决方案是使用存储对By的引用的WebElement的装饰器模式。我不知道C#,所以我不能帮你举个例子,对不起。