とにかく、オブジェクトを必要とせずにパラメーター式を渡すだけにこのメソッドを変更できますか?
protected void FillInTextFor<T>(T obj, Expression<Func<T, object>> property)
{
var memberExpression = (MemberExpression)property.Body;
var propertyInfo = (PropertyInfo)memberExpression.Member;
// read value with reflection
var value = (string)propertyInfo.GetValue(obj, null);
// use the name and value of the property
FillInText(propertyInfo.Name, value);
}
protected void FillInText(String elementId, String text)
{
VerifyElementPresent(elementId);
Driver.FindElement(By.Id(elementId)).Clear();
Driver.FindElement(By.Id(elementId)).SendKeys(text);
}
のように呼ばれる
var personToCreate = new PersonBuilder().RandomFirstName().Build();
FillInTextFor(personToCreate, a => a.FirstName);
私はただ言うことができるようにしたい、FillInTextFor(_ => personToCreate.FirstName);
または同様のことをしたいです
Selenium テスト用のヘルパー メソッドを作成しようとしています。オブジェクトを渡してプロパティを選択すると、プロパティの名前が要素 ID として自動的に使用され、テキストが文字列の値として使用されます。