このブログではAffinger5を使用しています。
今回のテーマ
こんにちは、サルモリです!
今回は下記のテーマについて書いていきます。
今回のテーマ
「OpenQA.Selenium.NoSuchElementException」と「OpenQA.Selenium.ElementNotInteractableException」が発生する理由と解決方法
「OpenQA.Selenium.NoSuchElementException」と「OpenQA.Selenium.ElementNotInteractableException」はSeleniumを使う上でどうしても発生してしまいます。
今回はこのエラーの解決方法を書いていきます!
Seleniumを使う環境が整っていない方はこちら
CHECK
-
-
Microsoft Edgeを自動化してみよう1
このブログではAffinger5を使用しています。ブログテーマが気に入った方はコチラをクリック まえがき こんにちは、サルモリです! これからC#のSeleniumの使い方について解説していくのでよろ ...
続きを見る
Seleniumの操作方法の説明は下記に記述しております。
CHECK
-
-
Microsoft Edgeを自動化してみよう3
このブログではAffinger5を使用しています。ブログテーマが気に入った方はコチラをクリック まえがき 下記の記事の続きです。まだ読んでない方はぜひ読んでください。この記事はC#でSeleniumを ...
続きを見る
自動化関連の記事はこちらにまとめてあります。
自動化の関連記事はこちら
「OpenQA.Selenium.ElementNotInteractableException」と「OpenQA.Selenium.NoSuchElementException」エラーについて
「OpenQA.Selenium.NoSuchElementException」エラーが発生する理由は
そもそも属性が存在しないよ。
と怒っています 😈
「OpenQA.Selenium.ElementNotInteractableException」エラーが発生してしまう理由は、
属性はあるけど、取得できないよ!
と怒っています 😈

「OpenQA.Selenium.NoSuchElementException」が発生するソースコード例
例として、「OpenQA.Selenium.NoSuchElementException」が出るソースコードを書いてみました。
Deepl翻訳を開くソースコードです。下3行はgoogleの操作を実行しようとしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using OpenQA.Selenium.Edge; namespace Selenium { class Program { static void Main(string[] args) { var driver = new EdgeDriver(EdgeDriverService.CreateDefaultService(@"D:\", "msedgedriver.exe")); driver.Navigate().GoToUrl("https://www.deepl.com/ja/translator"); //下の3行はそのまま driver.FindElementByName("q").SendKeys("yahoo"); driver.FindElementByXPath("//input[@value='Google 検索']").Click(); driver.Close(); } } } |
出力結果
OpenQA.Selenium.NoSuchElementException: 'no such element: Unable to locate element: {"method":"css selector","selector":"*[name="q"]"}
「OpenQA.Selenium.NoSuchElementException」が出力されましたね!!
このエラーが発生する理由は、
Deepl翻訳のホームページ上には、Googleの検索テキストボックスの属性が存在しないからです!
このエラーは正しい属性を指定してあげれば直りますので、修正してあげてください!
このまま、ごり押しても怒られ続けます!諦めて別の属性の指定方法を試しましょう!!
「OpenQA.Selenium.element not interactable」が発生するソースコードの例と解決方法
続けて、「OpenQA.Selenium.element not interactable」が発生するソースコードの例を書いていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
using OpenQA.Selenium.Edge; namespace Selenium { class Program { static void Main(string[] args) { var driver = new EdgeDriver(EdgeDriverService.CreateDefaultService(@"D:\", "msedgedriver.exe")); driver.Navigate().GoToUrl("https://www.google.com"); driver.FindElementByName("q").SendKeys("yahoo"); driver.FindElementByXPath("//input[@value='Google 検索']").Click(); } } } |
command
OpenQA.Selenium.ElementNotInteractableException: 'element not interactable'
エラーが発生しました!
このエラーが発生する理由は「Google検索」のボタンが何かしらの理由で画面上に表示されていないのが理由です。
このエラーが発生する場合は、下記の3つの方法を試してみてください。
ポイント
- 画面を最大化する。
- スクロールを合わせる。
- 一つのアクション後に一定時間処理を空けてみる。
今回は1番目の画面を最大化する方法で解決してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
using OpenQA.Selenium.Edge; namespace Selenium { class Program { static void Main(string[] args) { var driver = new EdgeDriver(EdgeDriverService.CreateDefaultService(@"D:\", "msedgedriver.exe")); driver.Navigate().GoToUrl("https://www.google.com"); //下の3行はそのまま driver.FindElementByName("q").SendKeys("yahoo"); driver.Manage().Window.Maximize(); //ブラウザを最大化するソースコード driver.FindElementByXPath("//input[@value='Google 検索']").Click(); } } } |
出力結果:yahooの検索画面
エラーが発生せずにyahooの検索画面が表示されました!
これはブラウザを最大化することによって、「Google検索」ボタンがブラウザ上に表示されたからです。
「OpenQA.Selenium.element not interactable」が発生した場合は、焦らずに上記のことを試してみてくださいね!!
まとめ
今回は「OpenQA.Selenium.NoSuchElementException」と「OpenQA.Selenium.ElementNotInteractableException: element not interactable」の解決方法を書いていきました。
エラーの発生理由
エラーがでる理由
- OpenQA.Selenium.NoSuchElementException:指定した属性がそもそも存在しない。
- OpenQA.Selenium.element not interactable:属性が存在するが、ブラウザ上に表示されていない。
解決方法
解決方法
- OpenQA.Selenium.NoSuchElementException:正しい属性を指定してあげる。
- OpenQA.Selenium.element not interactable:下記の3つを試して、ブラウザ上に表示されるようにする。
解決方法
- 画面を最大化する。
- スクロールを合わせる。
- 一つのアクション後に一定時間処理を空けてみる。
今回はSeleniumのエラーについて纏めました。この記事を見て、少しでも役に立てたら光栄です。
最後まで、見て頂きありがとうございました!!

次回の記事
CHECK
-
-
DeepL翻訳を自動化しながら、Seleniumの「OpenQA.Selenium.ElementNotInteractableException: element not interactable」エラーを対策してみる。
このブログではAffinger5を使用しています。ブログテーマが気に入った方はコチラをクリック 今回のテーマ こんにちは、サルモリです! ココがポイント 今回はDeepl翻訳を自動化するついでにSel ...
続きを見る
おすすめの記事
CHECK
-
-
C# Seleniumを使用して、ポケモン攻略の種族値一覧を取得し、CSVに書き込んでみた。スクレイピングをしたい方は是非みてください。
このブログではAffinger5を使用しています。ブログテーマが気に入った方はコチラをクリック 今回のテーマ 今回はSeleniumを使用して、ポケモン攻略さんからポケモン種族値一覧を取得し、 CSV ...
続きを見る
自動化の関連記事はこちら