我正在使用Ubuntu14.04中的Selenium和Firefox。我通過send_keys(Keys.CONTROL +'t')創建了一個新選項卡,但繼續在第一個選項卡上發出命令,可能是因爲我沒有正確地關注新選項卡。Ubuntu上的Selenium和Firefox:專注於新標籤
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 AMD 64位
- 蟒蛇2.7.6
這不是我所期待的。我想創建標籤並將焦點放在新標籤上。你的答案是關於製作Firefox的新窗口並在它們之間切換。 –
你是什麼意思'「把重點放在新標籤上」?什麼? 「切換」到新選項卡意味着「關注」它...對嗎? – Andersson
不完全。在Selenium中,即使切換到新選項卡,如果關注新選項卡,則可能無法執行任何操作。就我所知,切換和聚焦是不同的。請參閱https://gist.github.com/lrhache/7686903上的代碼。有一個評論說#把焦點放在當前窗口上,實際上,它將焦點放在當前可見標籤上 - > browser.switch_to_window(main_window) –