我在Firefox版本48.x.x上使用Selenium WebDriver。爲了這個工作,我需要使用GeckoDriver/Marionette驅動程序來與Firefox驅動程序交談。在舊版本的Firefox中,Selenium驅動程序能夠使用driver.getWindowHandle()
獲得瀏覽器窗口的會話ID,但是在新的(?)Gecko/Marionette驅動程序中,此函數返回一個短整數,而不是一個長度爲十六進制的文本字符串。這是一個錯誤?或Gecko/Marionette驅動程序的新功能?Selenium驅動程序 - 窗口句柄混淆了
這裏就是我遇到了麻煩:
1 - 我使用的Gecko /木偶司機
final File file = new File("/Applications/geckodriver");
System.setProperty("webdriver.gecko.driver", file.getAbsolutePath());
driver = new FirefoxDriver();
它工作正常啓動Firefox瀏覽器。然後,我在瀏覽器窗口中的會話ID的值打印出來:
System.out.println("WindowHandle ID = " + driver.getWindowHandle());
它顯示了一些短整數20是不正確10之間的某個地方。
然後,我打印出來的瀏覽器會話,我能夠看到實際的會話ID(之間的MAC場()):
Brwowser Session = BrowserSession [driver=FirefoxDriver: Firefox on MAC (**bc4eb9db-608b-5643-8ec9-136b6c54f6a2**), user=Admin, lastPage=null]
現在,我認爲新的Gecko /木偶搞砸driver.getWindowHandle()
功能?由於這個顯示限制器,我無法將Selenium控件從一個窗口切換到另一個窗口或彈出窗口。
問題:
反正是有,我可以得到實際的瀏覽器窗口中的會話ID?請幫忙。我真的需要克服這個巨大的障礙。我一直在尋找解決方案,但一無所獲。
我正在用Java編寫。
非常感謝。
你能提硒版本中使用? –
@Chandra ... Selenium v 3.0 beta; Firefox v 48.它僅適用於窗口。我試圖爲我的Mac安裝相同的設置,但無法使用。 –