安装程序 :p ython 绑定用于硒 2.45.0 ,IEserver 驱动程序 2.45.0(x86),python 2.7.9,窗口 7 64 位
问题:当我单击此重定向按钮时 href= https:www.work.test.co.in:1XXX9/TEST/servlet/MainServlet/home" target="_blank"
将打开一个新窗口,无法单击新窗口上的任何内容,因为控件(焦点)仍保留在上一个窗口上(通过关闭上一个窗口确认)。
试
1.no 名字,所以不能尝试
driver.switch_to_window("windowName")
2.尝试打印句柄(以便我可以使用句柄引用),但我只能看到一个窗口句柄。 使用以下代码
for handle in driver.window_handles:
print "Handle arr = ",handle
driver.switch_to_window(handle)
3.问题1:为什么我只有一个窗口句柄,我可以在任务管理器中看到两个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的两个实例,也没有获得第二个窗口句柄。
我不懂Python,但在Java中我会这样做:
// get handles to all opened windows before the click
Set<String> handlesBeforeTheClick = driver.getWindowHandles();
// and now click on the link that opens a new window
findElement( linkThatOpensNewWindow ).click();
// then wait until a new window will be opened
wait.until( ....condition ==> handlesBeforeClick.size() < driver.getWindowHandles().size(); .... )
// then get a handle to a new window
Set<String> handlesAfterClick = driver.getWindowHandles();
handlesAfterClick.removeAll( handlesBeforeClick );
String handleToNewWindow = handlesAfterClick.iterator().next();