我是硒的新手。
我在堆栈溢出上尝试了很多答案,包括:
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。窗口打开并执行我告诉的任何内容,但它在后台并且从不聚焦。我有什么遗失的吗?
我已经尝试迭代窗口并聚焦每一个但没有一个可行。
我真的希望这发生在脚本执行时观看浏览器是我使用此工具的原因。
欢迎任何建议。 感谢。
答案 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()