2017-07-27 281 views
0

我正在使用python 2.7。我已經看過thesequestions尋求幫助打開新標籤中的鏈接,而且這似乎是最初工作。但是,我嘗試關閉標籤後遇到問題。這裏是我的代碼:selenium/python:在關閉標籤頁後,試圖打開新標籤頁打開之前關閉的標籤頁

actions.key_down(Keys.COMMAND).click(people[x]).key_up(Keys.COMMAND).perform() 
driver.switch_to.window(driver.window_handles[-1]) # now at user page 
# interact with user page 
driver.close() 
driver.switch_to.window(driver.window_handles[0]) 

這是在for循環內通過人陣,那裏的人們是對應於用戶的下列獨立Twitter賬戶的網絡元素的列表中的每個元素去。第一次運行時,它會在新標籤中正確點擊第一個人的個人資料,切換到已創建的標籤,與其交互,關閉它,然後重新調整原始標籤(包含人員列表)。但是,在第二次迭代中,當它「點擊」第二個人時,它實際上爲第一個人和第二個人打開了一個標籤,這是不正確的。我相信只應該點擊一件東西,現在是第二個人的個人資料,因爲我只有一個點擊動作,它在people[x]上。

可能會出現什麼問題?

回答

0

嘗試重複這一部分:

driver.switch_to.window(driver.window_handles[-1]) 

所以你的第二個用戶如:

driver.switch_to.window(driver.window_handles[-2]) 

您將需要聲明全局變量,在for循環結束更改值。

希望它有幫助。

+0

儘管這在技術上有效,現在我正在與正確的頁面進行交互,但它仍未解決在每次單擊時打開多個選項卡的問題。我真的很想找到一種方法,只打開與我想單擊的用戶相對應的選項卡,否則我會留下許多打開的選項卡,即使我不使用它們。鑑於我將接近100次這樣做,我不確定Chrome是否可以一次處理多個打開的選項卡,並且我希望避免每次都關閉n-1個選項卡,因爲我相信這樣做效率很低。 –