質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

2回答

6819閲覧

【VBA】Selenium basicでラジオボタンを押したい

pay_

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/06/30 08:09

VBAでchromeを操作し、メール送信サービスの自動化を行っております。
※Selenium Basicを使用しています。

以下のラジオボタンの選択ができず困っております。
イメージ説明

あらかじめ、「Aメール」が選択されていますが、「Bメール」を選択したいです。
該当のソースコードは以下です。

該当のソースコード

イメージ説明

試したこと

Driver.FindElementById("取得したID").click
Driver.FindElementByName("取得したName").click
Driver.FindElementByCss("取得したCss").click
Driver.FindElementByXPath("取得したXPath").click

上記のコードそれぞれで試してみましたが、Bメールを選択することができませんでした。
Bメールを選択できる方法がありましたら、ご教授いただければ幸いです。

知識不足のため、至らぬ点が多々あるかと思います。
足りない情報など御座いましたらお申し付けください。
何卒宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

dim ks as Object 'これを追加

Set ks = CreateObject("Selenium.Keys")
Driver.FindElementById("mail_type1").SendKeys ks.Enter

クリックと言うよりエンターキー押下
こんな感じじゃだめでしょうか?

投稿2021/07/09 10:32

hodagiri

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pay_

2021/07/09 12:30

ご回答頂きありがとうございます。 ご提案頂いた方法で試してみましたが、選択されませんでした... FindElementByNameなどでエンターキー押下も試しましたが、動かずといった状況です。
hodagiri

2021/07/16 04:39

Driver.FindElementById("mail_type1").SendKeys " " エンターではなくスペースキーでもだめだったでしょうか?
guest

0

これはいかがですか?

イメージ説明

投稿2021/07/08 08:24

odataiki

総合スコア973

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pay_

2021/07/08 08:43

ご回答いただきありがとうございます。 私自身もそうしたく思っているのですが、とあるメールサービスを使用しており、そちらのソースコードなので、こちらでは編集できないのです。。。
odataiki

2021/07/08 09:24

なるほど、そういうことですね。 Selenium Basic は今日初めて知ったので全然詳しくありませんが jQueryあるあるですが 以下はどうでしょうか? ```vba Driver.FindElementById("取得したID").click ↓ Driver.FindElementById("取得したID")(0).click ```
pay_

2021/07/08 09:38

提案頂いたものを試してみましたが、反応ありませんでした。 ちなみに、(0)の数字も(1)など試してみましたが、ダメでした…!
odataiki

2021/07/08 14:21

GitHubのソースを見てみてみると AsSelect()というメソッドがありました。 私の方では環境がないため動作確認出来ないままの提案で申し訳有りませんが Driver.FindElementById("Bメールの取得したID").AsSelect() としてみたらBメールが選択されるようになりませんかね・・・?
odataiki

2021/07/08 14:36

もう少しソースを読み進めていたら下記の方が良いかも知れません。 Driver.FindElementByName("mail_type").AsSelect().SelectByValue(1) name属性 ”mail_type” でラジオボタングループを選択した状態にしてから BメールのValue=1をSelectする
pay_

2021/07/09 12:28

ご回答頂きありがとうございます。 Driver.FindElementById("Bメールの取得したID").AsSelect() Driver.FindElementByName("mail_type").AsSelect().SelectByValue(1) 上記2つ試してみましたが、Bメールは選択されませんでした。。。
odataiki

2021/07/10 05:38

的はずれな提案で申し訳ありませんでした。 こちらが参考になりませんか? https://teratail.com/questions/279217?link=qa_related_pc 言語はPythonですが同様かと感じました。 今回のケースで当てはめると driver.ExecuteScript('viewUseEditorMode(true)') ←BメールのラジオボタンのClickイベントに設定されているJSメソッド
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問