【发布时间】:2017-06-01 19:21:28
【问题描述】:
我正在 Ubuntu14.04 中开发 Selenium 和 Firefox。我通过 send_keys(Keys.CONTROL + 't') 创建了一个新选项卡,但一直在第一个选项卡上发出命令,可能是因为我没有正确关注新选项卡。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
main_window = driver.current_window_handle
driver.get("https://www.google.com")
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
driver.switch_to_window(main_window)
driver.get("http://www.bing.com")
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
driver.switch_to_window(main_window)
driver.get("https://github.com/login")
运行此代码时没有错误。
我在访问 google.com 后创建了一个新标签,屏幕变为新标签上的空白页面。之后,我编写了 driver.switch_to_window(main_window) 以专注于新选项卡,以确保下一行代码将发生在新选项卡上。但是随着 driver.get("http://www.bing.com") 的执行,屏幕会返回到 google.com 所在的第一个选项卡,并将 google.com 更改为 bing.com。下一个代码也是如此。创建了另一个新选项卡,但在执行 driver.get("https://github.com/login") 并且 bing.com 变为 github.com/login 时返回到第一个选项卡。
我以为我通过
专注于当前可见的选项卡main_window = driver.current_window_handle; driver.switch_to_window(main_window),
但这并没有奏效。 如何在 3 个不同的选项卡上加载所有 3 个网页?
规格:
- 硒 3.0.2
- 火狐45.0.1
- Ubuntu 14.04 和 64 位
- python 2.7.6
【问题讨论】:
标签: selenium firefox selenium-firefoxdriver