セットアップ:Selenium 2.45.0、IEserver driver2.45.0(x86)、python 2.7.9、window 7 64ビットのpythonバインディング
問題: このリダイレクト ボタンをクリックすると、 href= https:www.work.test.co.in:1XXX9/TEST/servlet/MainServlet/home" target="_blank"
新しいウィンドウが開き、コントロール(フォーカス)が前のウィンドウに残っているため、新しいウィンドウでは何もクリックできません(前のウィンドウを閉じることで確認されます)。
試し
た 1.名前がないため、試すことができません
driver.switch_to_window("windowName")
2.ハンドルを印刷しようとしました(ハンドル参照を使用できるように)が、ウィンドウハンドルが1つしか表示されません。次のコードを使用
for handle in driver.window_handles:
print "Handle arr = ",handle
driver.switch_to_window(handle)
3.質問 1 : なぜウィンドウ ハンドル ハンドルが 1 つしか表示されないのですか?タスク マネージャーで 2 つの IE インスタンスを確認できます。
4.インデックスを使用してみました-0、1など
driver.switch_to_window(driver.window_handles[-1])
5.試してみましたが、これについてはよくわかりません
driver.SwitchTo().Window(driver.WindowHandles.Last())
6.試してみましたが、アラートウィンドウではないことは確かです。
alert = driver.switch_to_alert()
脚本 :
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
driver = webdriver.Ie()
driver.get("https://my intranet site .aspx")
driver.implicitly_wait(2)
elem = driver.find_element_by_xpath("my xpath ")
elem.click()
driver.implicitly_wait(2)
elem = driver.find_element_by_xpath("//*[@id='tab1_2']/div[16]")
elem.click()
handle = driver.current_window_handle
print "Handle main = ",handle
driver.implicitly_wait(5)
elem = driver.find_element_by_xpath("page link button")
elem.click()
sleep(5)
my tried scenarioes here
提案は非常に高く評価されます更新-新しいウィンドウがリンクURLから直接開いたとき、クリックなどのアクションを実行できるため、
スクリプトを介して最初のウィンドウの続きで開くときだけ問題があります。
更新: 主な懸念は、タスク マネージャーが IE の 2 つのインスタンスを表示している場合でも、2 番目のウィンドウ ハンドルを取得しない理由です。