是否可以在selenium中打开新窗口,将焦点作为屏幕上的主窗口?

时间:2017-01-31 06:38:26

标签: python selenium

我是硒的新手。

我在堆栈溢出上尝试了很多答案,包括:

Get focus on the new window in Selenium Webdriver and Python

Make sure that browser opened by webdriver is always in focus

我见过的所有问题似乎都不适合我。

我使用的是python 3.5和最新的selenium。窗口打开并执行我告诉的任何内容,但它在后台并且从不聚焦。我有什么遗失的吗?

我已经尝试迭代窗口并聚焦每一个但没有一个可行。

我真的希望这发生在脚本执行时观看浏览器是我使用此工具的原因。

欢迎任何建议。 感谢。

1 个答案:

答案 0 :(得分:1)

AFAIK您无法自动控制每个打开的标签/窗口内容的可见性。但是,您可以按如下方式处理上次打开的选项卡/窗口,并查看当前选项卡/窗口上的确切情况:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.google.com")
google_window = driver.current_window_handle # Define main window
print(driver.title) # Title now is "Google". It is currently visible

driver.execute_script("window.open('http://www.bing.com');") # Open Bing window
bing_window = [window for window in driver.window_handles if window != google_window][0] # Define Bing window
driver.switch_to_window(bing_window)
print(driver.title) # Title now is "Bing". It is currently visible
driver.execute_script("window.close();") # Close Bing window

driver.switch_to_window(google_window)
print(driver.title) # Now title is again "Google". It is currently visible

此外,您可以使用driver.get(URL)在当前窗口中打开新页面,并使用driver.back()driver.forward()

在历史记录中导航