PBMe_HikeIt:
こんにちは、私は初めてPuppeteerSharpを使用していますが、EvaulateExpressionAsyncは複雑なC#のオブジェクトに変換する方法をサポートしている場合は疑問に思って。だから私はこのような何かをしようとすると:
var allResultsSelector = ".sortableTable.resultTable tr.studyResultRow";
var jsSelectAllAnchors = $"Array.from(document.querySelectorAll('{allResultsSelector}')).map(f=>f.innerText);";
await frmSearch.WaitForSelectorAsync(allResultsSelector);
var urls = await frmSearch.EvaluateExpressionAsync<InteleStudyResult[]>(jsSelectAllAnchors);
今のC#型
public class InteleStudyResult
{
public string PatientName { get; set; }
//public string PatientId { get; set; }
//public DateTime DOB { get; set; }
//public string Sex { get; set; }
//public string Accession { get; set; }
//public DateTime StudyDate { get; set; }
//public string Modality { get; set; }
//public int? Series { get; set; }
//public string StudyDescription { get; set; }
}
例外は、評価コールで発生します
Newtonsoft.Json.JsonSerializationException HRESULT = 0x80131500メッセージ=エラー「InteleradWebAccessor.InteleStudyResult」と入力して、「ここに私の文字列を」値を変換。パス '[0]'。ソース= Newtonsoft.Json
内部例外1:ArgumentExceptionがは:InteleradWebAccessor.InteleStudyResultに可能System.Stringからキャストまたは変換できませんでした。
これがサポートされていない場合、私は非常にPuppeteerSharpを使用して交流#複合型にHTMLテーブルの行であるものを得る処理するための最良の方法の提案をいただければと思います
hardkoded:
あなたはマップ内のオブジェクトべき
Array.from(document.querySelectorAll('{allResultsSelector}'))
.map(f =>{ return { patientName: f.innerText} });