Selenium(Edge/Chrome)

invalid selector: Compound class names not permittedの対処法【SeleniumBasic ExcelVBA】

SeleniumBasicでinvalid selectorエラーが表示される

SeleniumBasicでwebDriverを使用して、スクレイピングした際、
invalid selectorエラーが出る場合があります。
以前までは動いていたのですが、どこかのVerUPで動かなくなってしまったようです。

 

Compound class names not permittedとは

「invalid selector: Compound class names not permitted」を直訳すると
「無効なセレクター:複合クラス名は許可されていません」です。

Web上のClass要素が「aaa bbb」のように、空白半角スペースが入っているのが原因です。
空白で区切る=複合クラスとなる為、エラーになるため代替案を考える必要があります。

 

Compound class names not permitted解決するサンプルコード

    driver.FindElementByClass("aaa bbb").Click
    '→Compound class names not permitted

    driver.FindElementByCss(".aaa.bbb").Click
    '「.」で区切ることで複合クラスも処理可能。

 

要素の頭にドット「.」空白スペースもドット「.」を入れましょう。
こちらで指定要素をクリックしたり、データ取得することも可能です。

SeleniumBasicについて

Internet Explorer11 のサポート期限が2022年6月までと、スクレイピング自体入れ替えていく必要があります。
今一番スムーズなのはSeleniumBasicを使用したスクレイピングと考えます。

但し、VBAでのネット記事は少なく困っている方も多いと思います。
弊社で代行開発も可能ですので、お気軽にご用命ください。

コメント

タイトルとURLをコピーしました