要素を検索するために使用される「By」ロケーターを取得したい状況があります。PageFactoryを使用して要素を初期化しました。
このようなもの:
[TestClass]
public class Page
{
private IWebDriver _driver;
[FindsBy(How = How.Id, Using = "Username")]
public IWebElement TxtUsername { get; set; }
public Page(IWebDriver driver)
{
_driver = driver;
PageFactory.InitElements(_driver, this);
}
public void DoSomething()
{
By locator = GetLocator(TxtUsername); //Not real function
IWebElement e = _driver.FindElement(locator);
}
}
GetAttribute から Id を取得できることはわかっていますが、XPath を使用して要素を見つけた場合や、単に要素に ID がない場合は解決しません。
このような:
By locator = By.Id(element.GetAttribute("id"));
ありがとうございました