C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
【C#】Seleniumで選択したのに連動して選択されない
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
[トピック内 2 記事 (1 - 2 表示)] <<
0
>>
■103117
/ inTopicNo.1)
【C#】Seleniumで選択したのに連動して選択されない
▼
■
□投稿者/ たると
(1回)-(2024/05/14(Tue) 11:00:00)
分類:[C#]
C#でWinformを利用し、SeleniumでChrome操作をしようとしています。
問題なく操作やキー入力はできるようになったのですが、
Selectタグを選択しても、連動して選択される別のSelectタグが選択されません。
SelectData1を選択すると、
SelectData2の値が連動して決定するようになっています。
HTMLの<select>部分には、もう少しclassとかもついてますが
良く分からないのでシンプルにしました。
-----
<select id="SelectData1">
<option selected="" data-select2-id="6"> </option>
<option value="TEST1">りんご</option>
<option value="TEST2">ぶどう</option>
<option value="TEST3">キャベツ</option>
</select>
<select id="SelectData2">
<option selected=""></option>
<option>野菜</option>
<option>果物</option>
<option>肉</option>
</select>
-----------
SelectElement SelectTest= new SelectElement(chrome.FindElement(By.Id("SelectData1")));
SelectTest.SelectByText("りんご");
たとえば上記のような場合、
select2は自動で「果物」が選択されるようになってます。
プログラムでは「りんご」と入れられてますが、select2は何も選択されません。
ページ自体を私が作ったわけではないので、
どうやって実行させたらいいのかが分かりません。
上記のようにリンゴを選んでいるのだから
自動的にSelectData2に「果物」と表示させたいのです。
HTMLのプログラム?が動けばいいのですが、どのように動かすのでしょう。
Select2を取得してプログラム側で動かすことはできると思いますが
なるべくもともとある機能で選択したいと思っています。
回答よろしくお願いいたします。
引用返信
編集キー/
編集
■103119
/ inTopicNo.2)
Re[1]: 【C#】Seleniumで選択したのに連動して選択されない
▲
▼
■
□投稿者/ 魔界の仮面弁士
(3774回)-(2024/05/15(Wed) 16:27:53)
■
No103117
(たると さん) に返信
> select2は何も選択されません。
jQuery UI の Select2 コントロールのことでしょうか。
それとも <select id="SelectData2"> のことでしょうか。
> どうやって実行させたらいいのかが分かりません。
(change イベントなどの)変更通知イベントを、DOM の dispatchEvent メソッドで強制発火してみるとか。
Selenium からは、ExecuteJavaScript メソッド経由で呼び出せたかと。
chrome.ExecuteScript("arguments[0].dispatchEvent(new Event('change'))", objSelectTest2 );
ただし、この <select> 要素が Select2 化されているような画面においては、
'change' では無く、'change.select2' や 'select2:select' が必要になるかもしれません。
https://select2.org/programmatic-control/events
引用返信
編集キー/
編集
このトピックをツリーで一括表示
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
入力内容にタグは利用できません。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
URL は自動的にリンクされます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
名前
(*必須)
E-Mail (任意)
Web サイト (任意)
投稿モード
通常モード
図表モード (ソースコードを貼る場合はこちらを使用)
本文
(質問の場合は、開発環境・使用言語のバージョンなどを最初に書いてください)
■No103119 (魔界の仮面弁士 さん) に返信 > ■No103117 (たると さん) に返信 >>select2は何も選択されません。 > jQuery UI の Select2 コントロールのことでしょうか。 > それとも <select id="SelectData2"> のことでしょうか。 > >>どうやって実行させたらいいのかが分かりません。 > (change イベントなどの)変更通知イベントを、DOM の dispatchEvent メソッドで強制発火してみるとか。 > Selenium からは、ExecuteJavaScript メソッド経由で呼び出せたかと。 > chrome.ExecuteScript("arguments[0].dispatchEvent(new Event('change'))", objSelectTest2 ); > > ただし、この <select> 要素が Select2 化されているような画面においては、 > 'change' では無く、'change.select2' や 'select2:select' が必要になるかもしれません。 > https://select2.org/programmatic-control/events
編集キー
自分の投稿を編集する時に必要です
(半角8文字以内)
解決済み
/
解決したらチェックしておきましょう。
プレビュー/
管理者用
-
Child Tree
-