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

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

新規登録して質問してみよう
ただいま回答率
86.12%
Microsoft Edge

Microsoft Edgeは、マイクロソフト社が開発する新しいWebブラウザです。Windows 10から標準搭載されており、Internet Explorerとは違うレンダリングエンジンが採用されています。

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

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

解決済

[Selenium]EdgeのIEモードで新しいタブがポップアップブロックされる

mamegorou
mamegorou

総合スコア6

Microsoft Edge

Microsoft Edgeは、マイクロソフト社が開発する新しいWebブラウザです。Windows 10から標準搭載されており、Internet Explorerとは違うレンダリングエンジンが採用されています。

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

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

1回答

0グッド

0クリップ

6021閲覧

投稿2021/12/18 06:51

前提・実現したいこと

SeleniumでEdgeのIeモードを動かしています。
新しいタブを開きたいのですが、ポップアップブロッカーによって開けません。
解決方法を教えて下さい。

発生している問題・エラーメッセージ

新しいタブを開こうとすると、URLの右側に「ポップアップがブロックされました」と表示され、タブが開けません。

イメージ説明

該当のソースコード

python

1from selenium import webdriver 2from selenium.webdriver.chrome import service as fs 3import time 4from winreg import * 5 6ie_options = webdriver.IeOptions() 7ie_options.attach_to_edge_chrome = True 8ie_options.ignore_zoom_level = True 9ie_options.edge_executable_path = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe" 10 11#レジストリのPopupMgr値を変更 12def set_popupblocker_status(enabled): 13 key = OpenKey(HKEY_CURRENT_USER, r"Software\Microsoft\Internet Explorer\New Windows", 0, KEY_ALL_ACCESS) 14 SetValueEx(key, "PopupMgr", 0, REG_SZ, enabled) 15 CloseKey(key) 16 17try: 18 #レジストリ変更 19 set_popupblocker_status("no") 20 21 #ブラウザを開く(EdgeのIeモード) 22 ie_service = fs.Service(executable_path="IE driverがあるパス") 23 driver = webdriver.Ie(service=ie_service,options=ie_options) 24 25 #googleトップページに移動 26 driver.get("https://www.google.com/webhp?hl=ja&sa=X&ved=0ahUKEwjn7YH9zez0AhV3s1YBHR7lDX0QPAgI&safe=active&ssui=on") 27 28 #新しいタブでyahooトップ画面を開く 29 driver.execute_script("window.open('https://www.yahoo.co.jp/');") 30 31 time.sleep(5) 32 33finally: 34 driver.quit() 35 print("finished")

試したこと

①レジストリのPopupMgr値を変更
↓こちらの記事を参考に、レジストリの値を変更してポップアップブロックを無効にする方法を試しましたが、やはりブロックされてしまいます。

https://zenn.dev/dozo/articles/8c604e5b6f418e

https://tarunlalwani.com/post/selenium-disable-popup-blocker-different-browsers/

②driver.get()を行わない
試行錯誤の結果、新しいタブを開く前に一回でもdriver.get()を行うと本事象が発生することが分かりました。試しにdriver.get()の部分をコメントアウトして実行すると、ポップアップブロックはされず、新しいタブを開くことができました。

python

1from selenium import webdriver 2from selenium.webdriver.chrome import service as fs 3import time 4from winreg import * 5 6ie_options = webdriver.IeOptions() 7ie_options.attach_to_edge_chrome = True 8ie_options.ignore_zoom_level = True 9ie_options.edge_executable_path = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe" 10 11#レジストリのPopupMgr値を変更 12def set_popupblocker_status(enabled): 13 key = OpenKey(HKEY_CURRENT_USER, r"Software\Microsoft\Internet Explorer\New Windows", 0, KEY_ALL_ACCESS) 14 SetValueEx(key, "PopupMgr", 0, REG_SZ, enabled) 15 CloseKey(key) 16 17try: 18 #レジストリ変更 19 set_popupblocker_status("no") 20 21 #ブラウザを開く(EdgeのIeモード) 22 ie_service = fs.Service(executable_path="IE driverがあるパス") 23 driver = webdriver.Ie(service=ie_service,options=ie_options) 24 25 #googleトップページに移動 ←を行わないと新しいタブが開ける 26 #driver.get("https://www.google.com/webhp?hl=ja&sa=X&ved=0ahUKEwjn7YH9zez0AhV3s1YBHR7lDX0QPAgI&safe=active&ssui=on") 27 28 #新しいタブでyahooトップ画面を開く 29 driver.execute_script("window.open('https://www.yahoo.co.jp/');") 30 31 time.sleep(5) 32 33finally: 34 driver.quit() 35 print("finished")

↓実行結果
イメージ説明

しかしdriver.get()を行わないという縛りは避けたいため、この方法は使えません。
どなたか解決策のご教授の程宜しくお願い致します。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

wakuwaku499

2021/12/20 07:13

グループポリシーなどで制御されているということはないでしょうか?
mamegorou

2021/12/20 14:15

ありがとうございます。 グループポリシーについて色々と調べていたら結果的に解決方法を見つけることができました。 半ば諦めていたので本当に感謝しております。 大変ありがとうございました。
wakuwaku499

2021/12/21 00:11

IEモードの場合は、グループポリシーをIE側の設定をしないといけないことから回答に辿り着けたということですかね? 直接的ではありませんでしたが、きっかけになってよかったです。

回答1

0

自己解決

IEの設定が不十分でした。

①インターネットオプション→プライバシー→ポップアップブロックを有効にするのチェックを外す
②インターネットオプション→セキュリティ→レベルのカスタマイズ→ポップアップブロックの使用を無効にするの選択

①は実施していましたが、②を実施していなかったことが原因だったようです。
無事に新しいタブを開くことができました。

イメージ説明

投稿2021/12/20 14:23

mamegorou

総合スコア6

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Microsoft Edge

Microsoft Edgeは、マイクロソフト社が開発する新しいWebブラウザです。Windows 10から標準搭載されており、Internet Explorerとは違うレンダリングエンジンが採用されています。

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

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