如何在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