Pythonでseleniumを使用して、簡易的なスクレイピングの練習をしています。
Firefoxを使っているのですが、新規タブを開きたいのですがなぜか新規のウィンドウを開いてしまいます。
コードのコメントアウトに流れを記載しております。
ログイン状態を保持して、ブラウザを立ち上げた場合のみ新規ウィンドウになりまして、
通常のゲスト?(ログインしていない状態)では問題なく別タブを開いてくれます。
知識不足でお恥ずかしいのですが、調べた結果から判断するとオプションの設定が問題なのかな?
と思って検索していますがどうしても答えが分かりません。
お忙しいところに申し訳ないのですが、どなたかご教示願えませんでしょうか..
よろしくお願いしますm(_ _)m
動作環境
os:windows10
osビルド:19041.572
python:3.8.3
selenium:3.141.0
Firefox:82.0.2
Python
1import time 2from selenium import webdriver 3from selenium.webdriver.firefox.options import Options 4from selenium.webdriver.common.keys import Keys 5 6 7# ログイン保持でFirefoxを起動するためのプロファイル設定 8fp = webdriver.FirefoxProfile('C:\Users\motoy\AppData\Roaming\Mozilla\Firefox\Profiles\010hmdn9.default-release') 9driver = webdriver.Firefox(fp) 10 11 12# ログイン保持ではなくゲストとして起動すると問題なくタブが開けます 13# driver = webdriver.Firefox() 14 15 16# 検索するワード 17key_words = 'モロッカンオイル 50ml' 18 19 20# 最初のタブでGoogle検索 21driver.get('https://www.google.com/') 22time.sleep(1) 23search_box = driver.find_element_by_name("q") 24search_box.send_keys(key_words) 25search_box.submit() 26 27 28##################################################################### 29# 同じウィンドウ内の別タブで開く予定ですが、新規のウィンドウで開いてしまいます... 30# 2番目のタブでヤフオクを開いてワードを検索する 31driver.execute_script("window.open('https://auctions.yahoo.co.jp/');") ## 問題の箇所 32##################################################################### 33 34 35# 新しいタブに切り替える 36driver.switch_to.window(driver.window_handles[1]) 37time.sleep(4) 38 39 40# ポップアップ広告が表示された場合の対応(広告を閉じる) 41if driver.find_element_by_xpath('/html/body/div[1]/div/section/div/a[2]'): 42 driver.find_element_by_xpath('/html/body/div[1]/div/section/div/a[2]').submit() 43 44# ヤフオクで検索 45search_box = driver.find_element_by_name("p") 46search_box.send_keys(key_words) 47search_box.submit() 48time.sleep(5) 49 50driver.quit()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/02 09:44