4

とにかく、オブジェクトを必要とせずにパラメーター式を渡すだけにこのメソッドを変更できますか?

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 として自動的に使用され、テキストが文字列の値として使用されます。

4

1 に答える 1