セレンドライバを使用してテーブルを埋めようとしていますが、見つけることができるすべてのドキュメントは、セルからデータを取得する方法のみを示しています。以下を使用してテーブルセルにアクセスできます。
var rows = Driver.FindElement(By.Id("Products")).FindElements(By.XPath("id('Products')/tbody/tr"));
var cells = tableRows[1].FindElements(By.XPath("td"));
しかし、その中のデータを更新する方法を見つけることができませんでした。 「テキスト」プロパティにはGetメソッドのみがあり、SendKeys()関数は機能しません。セルの値を編集するにはどうすればよいですか?
サイドノートとして、私のセルにはhtmlの「入力」が含まれています。セルのFindElement関数を使用してアクセスしようとしましたが、何らかの理由で見つかりません。
回答 2 件
IWebElementはテキストを変更するメソッドを提供しませんが、少しのJSを使用できます。
((IJavaScriptExecutor)Driver).ExecuteScript("document.getElementByXXXXX.innerHTML = "VALUE";");
https://seleniumhq.github.io/selenium/docs/api/dotnet/html/M_OpenQA_Selenium_IJavaScriptExecutor_ExecuteScript.htm
関連記事
- セレンを使用してテーブルをこするのに苦労している
- JQueryを使用してダイナミックHTMLテーブルから選択した行の値を取得するにはどうすればよいですか?
- あるテーブルのタイムスタンプを別のテーブルの選択の間隔として使用する
- javascriptを使用して、列の最後のポイントでテーブルを並べ替える方法
- メソッドHASH_ADDは、新しい要素をハッシュテーブルに追加しません。 uthashhの使用
- Seleniumを使用してフォームにログイン資格情報を入力する方法
- JQUERY、PHP、AJAXを使用してHTMLテーブルにデータを入力する
- Excel VBA:3つの行要素と1つの列要素を使用してピボットテーブルからデータを取得します
- 結合せずに1つのテーブルを使用して別のテーブルをフィルタリングする
- pandasデータフレームを使用してcsvからテーブルにデータをロード中にエラーが発生しました
一般的に言えば、
SendKeys
セルに実際に入力要素が含まれている場合に機能するはずです。しかし、入力要素を見つけることができないと言っているので、入力要素は常に各セルに存在しないと思います。入力要素をそのセルに表示するには、おそらく最初にセルをクリックする必要があります。要素を検査すれば、開発ツールを使用して検証できるはずです前 それをクリックします。