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

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

新規登録して質問してみよう
ただいま回答率
85.47%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

VBA

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

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

2回答

2534閲覧

Excel VBA + Selenium Chromeで#shadow-rootの要素をクリックしたい

Ryo3

総合スコア1

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

VBA

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

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

1クリップ

投稿2022/05/13 05:01

編集2022/05/13 05:04

VBAとSelenium Basicでスクレイピングを行っています。
モーダルウィンドウ上のボタンをクリックしたいのですが、うまくできません。

該当ボタンがshadow rootの要素であるため、ExecuteScriptを使用し、
returnされたものを変数にセットして「ゲストとして続ける」ボタンをクリックしようとしていますが、
以下のVBAのSet shadowRootの行でエラーが出ます。
どうすれば解決できるでしょうか。

宜しくお願いいたします。

error

1実行時エラー '424': 2オブジェクトが必要です。

vba

1Dim shadowRoot As Selenium.WebElement 2 'Scriptを起動して指定したShadow-root部分をセット 3 Set shadowRoot = driver.ExecuteScript _ 4 ("return document.querySelector('#root > kat-modal > div > kat-button.spacing-top-small')") 5 shadowRoot.Click

html

1<kat-modal no-close-icon="true" visible="true" class="redirect-modal" aria-role="dialog" aria-modal="true" aria-labelledby="title"><img src="https://m.media-amazon.com/images/G/01/rainier/nav/sc-unified._CB341165134_.png"> 2 <div slot="footer" class="redirect-modal-content"> 3 <div> 4 <kat-label text="サインインすると、FBA料金シミュレーターに無制限にアクセスできます" variant="default"><span slot="private-light-dom"><label hidden=""><!----> <span part="label-text"><!---->サインインすると、FBA料金シミュレーターに無制限にアクセスできます<!----></span> 5 <!----> 6 </label> 7 </span> 8 </kat-label> 9 </div> 10 <kat-button class="spacing-top-medium" label="セラーセントラルにサインインします" variant="primary" size="base" type="button"></kat-button> 11 <div class="redirect-divider-block"> 12 <kat-divider variant="athens" class="redirect-divider"></kat-divider> 13 <kat-label text="または" class="redirect-divider-text" variant="default"><span slot="private-light-dom"><label hidden=""><!----> <span part="label-text"><!---->または<!----></span> 14 <!----> 15 </label> 16 </span> 17 </kat-label> 18 <kat-divider variant="athens" class="redirect-divider"></kat-divider> 19 </div> 20 <kat-button class="spacing-top-small" label="ゲストとして続ける" variant="tertiary" size="base" type="button"></kat-button> 21 </div> 22</kat-modal>

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

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

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

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

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

okakemetal

2022/05/13 07:37

document.querySelectorはIE6,IE7で動かず、IE8でもたまにバグが出たりするそうですが 利用されているブラウザは何を使用されてますでしょうか?
Ryo3

2022/05/13 07:59

Google Chromeを使用しています。 バージョン: 101.0.4951.54(Official Build) (64 ビット)
guest

回答2

0

自己解決

shadow rootの直前の要素をクリックすることで解決できました。
ありがとうございました。

投稿2022/12/02 00:15

Ryo3

総合スコア1

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

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

0

VBA

1dim driver as new selenium.chromedriver 2driver.get('URL') 3driver.findelementbyclass("spacing-top-small").click

でどうですか

投稿2022/05/18 04:32

ma1982

総合スコア15

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

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

Ryo3

2022/05/18 06:14 編集

できませんでした。 通常の要素であればご回答いただいたようなクラス名を指定する方法で取得できますが、 #shadow-root内の要素の場合、通常のやり方では取得できないようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問