如何在Locator Selenium WebDriver頁面對象中轉換IWebElement?如何通過C#將Selenium定位器中的Selenium IWebElement轉換爲?
我的工作是這樣的:
using OpenQA.Selenium.Support.PageObjects;
[FindsBy(How = How.Id, Using = "user")]
public IWebElement txtUser { get; set; }
public void fillUserField(string user)
{
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("user")));
txtUser.SendKeys(user);
}
我不想重複在等待ID爲「用戶」。
我不工作是這樣的:
public void fillUserField(string user)
{ // TO DO - Convert IWebElement in Locator (BY)
//Argument1: Cannot convert from 'OpenQA.Selenium.IWebElement' to 'OpenQA.Selenium.By'
wait.Until(ExpectedConditions.**ElementIsVisible(txtUser)**);
txtUser.SendKeys(user);
}
是可能的?謝謝!
如果你想用這個模型來堅持,你可以創建一個單獨的方法,它'IWebElement',通過它你的元素(例如'txtUser')然後用try catch處理該方法,直到元素被找到/準備好/可見。我看不到如何在你的場景中做「等待」而不復制By locator類型的字符串。國際海事組織,等待元素的理想解決方案是這樣的:http://stackoverflow.com/a/7312740/2246511但我不知道你可以如何使用它與PageObjects。 – jibbs