用於Chrome和Firefox的Selenium在C#中編碼時不會處理切換到在自動化測試期間打開的新選項卡。我不認爲它着重於打開新標籤,因爲當我完全運行我的程序時,我收到此錯誤:「超出範圍」異常和「索引超出範圍。必須是非負數,小於收藏品「。C#Selenium在Chrome和Firefox中打開新選項卡時沒有新窗口句柄
我已經嘗試使用:
driver.SwitchTo().Window(driver.WindowHandles.Last());
和
driver.SwitchTo().Window(driver.WindowHandles[1]);
driver.SwitchTo().Window(driver.WindowHandles[0]).Close(); // close the first tab
System.Threading.Thread.Sleep(5000); //Wait 5 seconds just in case
driver.SwitchTo().Window(driver.WindowHandles[1]); //Makes sure I'm on the correct tab
但沒有運氣。如果我不關閉第一個選項卡,則會收到錯誤:「NoSuchElementException:無法找到元素:{method ...}」,我認爲這是正確的,因爲焦點仍在第一個選項卡上。任何幫助將不勝感激。謝謝。
一旦你關閉了'tab [0]',舊的'tab [1]'不會成爲新的'tab [0]'? – sokkyoku
是的,我沒注意到。謝謝。但現在我唯一的問題是,我作爲輸入的xpath無法在新選項卡上找到。這是我會發現的另一個問題。再次感謝 – CRich
如果這解決了問題,您的問題提到我可以將它作爲您接受的答案發布。 – sokkyoku