我有一个Python Selenium脚本:a)在主窗口上执行任务,B)启动第二个窗口C)切换到第二个窗口D)在第二个窗口上执行任务E)关闭第二个窗口F)切换回第一个窗口,继续执行任务。
mainWindow = driver.current_window_handle # remember which window handle is "main"
xpathlink = "//a[.='Click to select']"
driver.find_element_by_xpath(xpathlink).click() # here is step B
print(driver.window_handles) # this confirms yes, there are 2 window handles now
driver.switch_to_window(driver.window_handles[1]) # step C, switch to the newer window handle
#snip # step D - this executes as expected
rowButtonPath = 'xpath_to_button_that_closes_second_window'
driver.find_element_by_xpath(rowButtonPath).click() # step E - closes 2nd window
print(driver.window_handles) # this confirms there's just one window handle again -- the same as the one I started with
driver.switch_to_window(mainWindow) # step F - try to switch back to first one
从经验上看,变通办法应该是:*以不触发Chrome行为的方式返回第一个窗口*当webdriver实例启动时,通过调整Chrome的选项来取消此Chrome功能
...但我不知道怎么做。
事实证明,省略步骤F是正确的答案(挂起行为是一个无关的bug)
显然,当弹出窗口关闭时,它会自动切换回第一个窗口。因此,“切换到第一个窗口”命令(当它已经在那里时)会触发Chrome说“你想离开这个网站吗?”
我想要“您所做的更改可能不会保存?”当用户试图关闭一个选项卡而没有正确退出时,我如何确保它显示出来?
问题内容: 在stackoverflow中,如果您开始进行更改,然后尝试离开该页面,则会显示一个javascript确认按钮并询问:“确定要离开该页面吗?” blee blah bloo … 之前有人实施过此功能,如何跟踪所做的更改?我相信自己可以做到,我正在尝试向您的专家学习良好做法。 我尝试了以下操作,但仍然无法正常工作: 有人可以举一个例子吗? 问题答案: 更新(2017) 现在,现代浏览器
问题内容: 在stackoverflow中,如果您开始进行更改,然后尝试离开该页面,则会显示一个javascript确认按钮并询问:“确定要离开该页面吗?” bleeblah bloo … 之前有人实施过此功能,如何跟踪所做的更改?我相信自己可以做到,我正在尝试向您的专家学习良好做法。 我尝试了以下操作,但仍然无法正常工作: 有人可以举一个例子吗? 问题答案: 更新 现在,现代浏览器认为显示自定义
问题内容: 是否可以通过在指令范围内传递值来即时更改templateUrl?我想将数据传递到控制器,该控制器将根据从指令传递的数据来呈现页面 可能看起来像这样: 问题答案: 有可能,但是当要加载的模板取决于某些范围数据时,您将无法再使用指令的属性,并且您将不得不使用较低级别的API,即和。 大约需要做的事情(仅在链接功能中是可能的)是使用(不要忘了参与!)检索模板的内容,然后“手动”编译模板的内容
问题内容: 我试图在注释中包含一条动态消息,该消息根据传递给它的其他变量中的值来更改文本的主体。我设置了默认消息,但是当设置了某个指示器时,我想显示其他消息。这可能吗? 这是我的注释- 这是注释使用的验证器类- 我最感兴趣的部分是读取的代码- 问题答案: 这是我能够执行此操作的方式-
但是,浏览器不是(而是应该)关闭。我正在使用Selenium Ruby WebDriver。请指导我解决这个问题的方法。太感谢了。 请注意,使用上面的代码,我可以成功地关闭IE9浏览器,该浏览器弹出消息“此页面要求您确认您想离开-您输入的数据很多没有保存”与“离开页面”和“留在页面上”按钮。但是,如果弹出的消息内容是“您想从这个网站打开或保存”abc.txt“,代码就不能工作了。有3个按钮(“打开